为什么指令不调用我的控制器方法
Why directive is not calling my controller method?
指令没有调用我的控制器方法。下面是我的代码:
控制器:
exports.controller = ['$scope', function($scope) {
$scope.addParamter = function () {
console.log("here");
};
$scope.editParamter = function (item) {
console.log(item);
};
}];
页面:
<formula-editor
add-paramter="addParameter()"
edit-paramter="editParameter(item)">
</formula-editor>
指令:
Js:
exports.inject = function(app) {
app.directive('formulaEditor', exports.directive);
return exports.directive;
};
exports.directive = function () {
return {
restrict: 'E',
templateUrl: '/dist/views/formula-editor.html',
scope: {
addParameter: '&',
editParameter: '&'
}
};
};
formula-editor.html:
<button ng-click="addParameter()"></button>
欢迎来到Angular !你在这里做了一个boo boo,你的$scope.addParamter()
函数名称在你的HTML中是错误的(拼写错误),所以你的指令无法在指令标签中找到提到的addParameter()
函数。所以只要把你的主html改成下面的
<formula-editor
add-paramter="addParameter()"
edit-paramter="editParameter(item)">
</formula-editor>
<formula-editor
add-paramter="addParamter()"
edit-paramter="editParamter(item)">
</formula-editor>
您可以尝试下面的代码。它可能对u有效。
exports.directive = function () {
return {
restrict: 'E',
templateUrl: '/dist/views/formula-editor.html',
scope: {
addParameter: '&addParamter',
editParameter: '&editParamter'
}
};
};
代替
<formula-editor
add-paramter="addParameter()"
edit-paramter="editParameter(item)">
</formula-editor>
可以用
<formula-editor
addParamter="addParameter()"
editParamter="editParameter(item)">
</formula-editor>
相关文章:
- 如何在单击复选框后调用控制器方法
- 在嵌套递归指令中将参数传递给父控制器方法
- 如何在使用$timeout进行指令渲染后调用控制器方法
- 使用javascript将控制器方法移动到客户端
- AngularJS在页面重定向上执行控制器方法
- 如何从弹簧控制器方法更新html img src
- 表单提交未到达控制器方法
- 使用 $.getJson 方法从 jquery 调用 C# MVC 控制器方法
- 如何将对象列表传递到MVC4中的控制器方法
- 如何将从jQuery创建的数组传递给控制器方法
- 通过javascript调用控制器方法
- 一键点击首先调用javascript,执行验证,然后调用控制器方法
- 窥探递归角度控制器方法
- Angular为不同的url调用不同的控制器方法
- 如何在 emberjs 中访问其他控制器方法
- 如何从Javascript函数调用控制器方法
- 调用控制器方法并在客户端上获取数据
- 离子:$ionicPlatform.isIOS()在控制器方法中不起作用
- 使用 Ajax 将表单数据发布到控制器方法
- 在 ember.js 中定义和使用控制器方法