Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Как в директиве, получить доступ к input входящему в шаблон директивы? - AngularJS (https://javascript.ru/forum/angular/61381-kak-v-direktive-poluchit-dostup-k-input-vkhodyashhemu-v-shablon-direktivy-angularjs.html)

metaller92 15.02.2016 22:23

Как в директиве, получить доступ к input входящему в шаблон директивы? - AngularJS
 
К примеру мы имеем директиву.
app.directive('myFirstDir', function() {
        return {
            restrict: 'E',
            replace: true,
            scope: {
                myOwnAttr: '@'
            },
            templateUrl: './myFirstDir.html',
            link: function (scope, attr) {
                //  как получить элемент исходя из его ngModel здесь или другими способами?
            }
        }
    });


Вот такая проблема. Есть элемент формы в шаблоне (в моём случае это "myFirstDir.html"), а работать с ним в коде директивы не могу, а надо.

Прошу подсказки.

Спасибо.

krasovsky 16.02.2016 06:35

Что значит "работать с ним"? Манипулировать данными? Или DOM?
В первом случае:
myFirstDir.html:
<input name="myinp" model="myinpmodel" />


link:function($scope){
$scope.myinpmodel = 'some value';
}

Во втором:
http://plnkr.co/edit/?p=preview
https://docs.angularjs.org/api/ng/fu...ngular.element

metaller92 16.02.2016 10:24

Цитата:

Сообщение от krasovsky (Сообщение 407974)
Что значит "работать с ним"? Манипулировать данными? Или DOM?

В моём случае, у меня select, и да, манипулировать данными.
Если я присвою
$scope.selectModel = 'something'
то, значение при ng:change - меняться не будет.

Вот и хочу разгадать ребус.

krasovsky 17.02.2016 07:14

С селектами отдельная тема
$scope.valuesList = [{id:1,name:"name1"},{id:2,name:"name2"}];
$scope.MyModel = 2;

<select name="someName" ng-change="onChange()"
                                       ng-model="MyModel"
                                       ng-options="value.id as value.name for value in valuesList">
                                    </select>

Как то так вроде.


Часовой пояс GMT +3, время: 16:01.