ng-click不在嵌套指令中触发

时间:2015-07-08 16:38:37

标签: angularjs django angularjs-directive angularjs-ng-click

我试图为测验应用程序构建嵌套指令,其中外部指令对应于一个问题,每个内部指令对应一个可能的答案。当用户单击答案时,它会禁用自身和其他选项,更改其颜色,并将POST请求发送回服务器。

或者至少那是最终目标。目前,我试图让选择按钮调用“点击”按钮。功能并注销一条简单的信息。令我沮丧的是,我无法点击进行任何操作。

这是我的代码的一个非常简化的版本,可以重现这个问题:

ng-click="click()"
ng-click="scope.click()"
ng-click="$scope.click()"

一对夫妇说: 我在后端使用django,并且在检索页面时将一些数据嵌入到DOM属性中,因此我不想将html放在模板中。
我也使用django模板创建了一堆这些问题和选择,而在我不那么精简的代码版本中,选择成功地记录了他们各自的问题' IDS。

我试过了:

ng-disable="disabled"

各自都没有成功。

我想使用链接函数而不是控制器,因为我想使用父指令的控制器来访问父问题的id(并且能够在任何时候禁用该问题)它的选择得到了答复。)

编辑: 另外值得注意的是,我尝试添加:

echo "error; you need to submit the form!";

到选择指令并在链接函数中切换一个禁用的变量并且有效。

1 个答案:

答案 0 :(得分:2)

错误的参数排序应为link: function(scope, element, attrs)

JSFiddle

angular.module('myApp', []).directive('choice', ChoiceDirective);

function ChoiceDirective() {
    return {
        restrict: 'AE',
        link: function(scope, element, attrs) {
            //this is firing!
            scope.click = function(){
                console.log('click')
            }
        }
    };
};

如果你还需要一个控制器,它应该是最后一个参数link: function(scope, element, attrs, controller)