質問の言い方がわからないので、より良いものを思いつくことができれば編集してください。次のディレクティブがあります。
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' };
});
両方のシナリオで機能させるにはどうすればよいですか。angularは両方を使用できるので、正しいことのようです。