我一直在制定指令'输入容器'我需要在孩子的输入模型上添加$ watch。我该怎么做?
<input-container>
<label>Doc</label>
<input type="text" ng-model="model.userName"/>
</input-container>
<input-container>
<label>Senha</label>
<input type="password" ng-model="model.password"/>
</input-container>
我需要根据输入值为我的指令包添加不同的类。我添加了这样的手表
app.directive('inputContainer', function () {
return {
restrict: 'E',
link: function (scope, elem, attrs) {
elem.addClass('input-container');
elem.find('input').bind('focus', function () {
elem.addClass('focused');
});
//---- code
scope.$watch(???????, function (value) {
if (value)
//-- do something
else
//-- do something
})
}
};});
但是,我不知道如何观看输入的ngModel。这是我发现的唯一方法。无论如何,它不允许我访问$ viewValue
scope.$watch(elem.find('input')[0].attributes['ng-model'].nodeValue, function (value) {
if (value)
//-- do something
else
//-- do something
})
我需要的是动态获取输入ngmodel变量,一旦它为每个指令实例具有不同的名称,这样我就可以这样做:
scope.$watch(function(){
return childInputNgModel.$viewValue;
}, function (newValue) {
if (newValue)
//-- do something
else
//-- do something
})