我试图为测验应用程序构建嵌套指令,其中外部指令对应于一个问题,每个内部指令对应一个可能的答案。当用户单击答案时,它会禁用自身和其他选项,更改其颜色,并将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!";
到选择指令并在链接函数中切换一个禁用的变量并且有效。
答案 0 :(得分:2)
错误的参数排序应为link: function(scope, element, attrs)
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)