angularjs自定义指令双向绑定手表无法正常工作

时间:2014-12-05 11:35:07

标签: javascript angularjs

我创建了一个自定义指令,并使用双向绑定(=)

但是我希望在指令中更改模型时观察控制器中的更改。

警报应在用户更改输入时显示,但警报在开头只出现一次。

我的javascript

var myApp = angular.module('myApp', [])

    .controller("myCtrl", function ($scope) {
    $scope.test = "myValue";
    $scope.$watch('myValue', function () {
        alert('hey, myVar has changed!');
    });
})

    .directive('myDirective', function () {
    return {
        restrict: 'EA',
        scope: {
            myModel: '=ngModel'
        },
        template: '<input ng-model="myModel"/>'
    }
});

和html

<div ng-app="myApp">
    <div ng-controller="myCtrl">{{test}}
        <my-directive ng-model="test"></my-directive>
    </div>
</div>

http://jsfiddle.net/c7nbk8uq/

2 个答案:

答案 0 :(得分:1)

您正在观看错误的变量?

$scope.$watch('test', function() {
       alert('hey, myVar has changed!');
   });

答案 1 :(得分:1)

你错误拼写了'myValue'和'test'。

 $scope.$watch('test', function() {
       alert('hey, myVar has changed!');
   });

http://jsfiddle.net/pmydr7qp/