Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 监视控制器不工作_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 监视控制器不工作

Javascript 监视控制器不工作,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我试图观察通过模板注入的指令控制器中的作用域变量,但监听器似乎从未触发 有人能告诉我我做错了什么吗?谢谢你的帮助 谢谢问题是您在输入元素上应用了指令。由于该指令已呈现输入元素,因此必须将其标记为元素或应用属性replace true 将您的HTML更改为: <simple-auth-username></simple-auth-username> 以及指示: angularSimpleAuth.directive('simpleAuthUsername',fun

我试图观察通过模板注入的指令控制器中的作用域变量,但监听器似乎从未触发

有人能告诉我我做错了什么吗?谢谢你的帮助
谢谢

问题是您在输入元素上应用了指令。由于该指令已呈现输入元素,因此必须将其标记为元素或应用属性replace true

将您的HTML更改为:

    <simple-auth-username></simple-auth-username>
以及指示:

angularSimpleAuth.directive('simpleAuthUsername',function(){
    return {
        restrict: 'E',
        scope:{},
        template:'<input type="text" ng-model="userName" />',
        controller:function($scope){
            $scope.$watch('userName',function(val){
                console.log('Value'+val);
            });
        },
        link: function($scope, elem, attrs,controllers) {
            console.log('In link for username');

        }
    };
})

成功了!在我的属性指令中使replace为true也起了作用。你能告诉我这里发生了什么吗?谢谢你的回答
angularSimpleAuth.directive('simpleAuthUsername',function(){
    return {
        restrict: 'E',
        scope:{},
        template:'<input type="text" ng-model="userName" />',
        controller:function($scope){
            $scope.$watch('userName',function(val){
                console.log('Value'+val);
            });
        },
        link: function($scope, elem, attrs,controllers) {
            console.log('In link for username');

        }
    };
})