如何在没有双向绑定的指令中隔离ngModel。我目前的代码不起作用:
scope: {
ngModel: "&"
},
我不会收集我的收藏品,而是采用一种方法。
答案 0 :(得分:0)
根据您的角度版本,您可以在视图中使用::
将双向数据绑定转换为单向。
例如:
<element ng-model="::object.value"></element>
这应该从角度版本1.3及以上
起作用答案 1 :(得分:0)
ngModel使用双向绑定。因此,您需要将其作为表达式进行评估,然后使用结果。
<element ng-model="myvar"></element>
$scope.$watch(function() {
return attr.ngModel
}, function(value) {
var oneWay = $scope.$eval(value);
});
不要使用隔离范围,因为您希望访问ngModel所在元素上的范围。
答案 2 :(得分:0)
这就是你如何做你要求的。 (不知道这是否可以用于有用的东西) 如果声明隔离范围并使用ng-model,则可以从ngModelCtrl获取值。(在指令中需要它):
app.directive('test', function($timeout) {
return {
scope : {},
require: 'ngModel',
link : function(scope, elem, attrs, ctrl) {
console.log(ctrl);
ctrl.$viewChangeListeners.push(function() {
scope.test = ctrl.$modelValue;
console.log('test = ', scope.test)
})
}
};
});
您的孤立范围中的ngModel值是单向绑定的。 http://plnkr.co/edit/4xGhb5OYRVg6gtzLDHlY?p=preview