不知道如何表达这个问题,所以如果你能想出更好的东西,请编辑。我有以下指令:
app.directive('foo', function() {
return {
restrict: 'A',
require: "?ngModel",
link: function (scope, element, attrs, controller) {
scope.$watch(attrs.ngModel, function () {
console.log("Changed to " + scope[attrs.ngModel]);
});
}
};
});
当我拥有它时,它工作得很好并且可以正确记录
<input type="text" ng-model="bar" />
app.controller('fooController', function($scope) {
$scope.bar = 'ice cream';
});
当我以这种方式尝试时,它不起作用。它不断记录“更改为未定义”
<input type="text" ng-model="model.bar" />
app.controller('fooController', function($scope) {
$scope.model = { bar: 'ice cream' };
});
我如何使它适用于这两种情况。看起来是正确的做法,因为角度可以让您同时使用两者。