#angularjs #angularjs-directive #angularjs-scope
#angularjs #angularjs-директива #angularjs-scope
Вопрос:
Я хотел бы посмотреть модель search.value
внутри моей пользовательской директивы.
Как это сделать?
HTML :
<div search></div>
ДИРЕКТИВА :
app.directive('search', function($rootScope) {
return {
restrict: 'A',
transclude: true,
scope: true,
templateUrl: 'template/app/inputSearch.html',
replace: true,
controller: function() {
},
link: function (scope, element) {
/* ... */
scope.$watch(......., function(value) {
});
}
};
});
ШАБЛОН :
<div class="search-parent">
<div class="search">
<input type="text" ng-model="search.value" />
</div>
</div>
Ответ №1:
controller: function($scope) {
$scope.$watch('search.value', function(newVal, oldVal) {
});
}
Комментарии:
1. Хорошо, спасибо, я попробую. Но почему вы помещаете это в функцию контроллера?
2. Любой способ должен работать. Это просто зависит от того, как вы хотите организовать свой код внутри
link
иcontroller
функций. Мне нравится этот подход, потому что я могу сначала протестировать свой код с помощью директивы controller outside, а затем, если это сработает, код можно вырезать и вставить прямо в контроллер директивы. С помощьюlink
вы должны переименовать$scope
вscope
.