指令中来自控制器的AngularJS调用方法
AngularJS call method from controller in directive?
我有一个问题:我使用Angular,需要使用pushMsg
方法,但我不知道如何调用它,boxCtrl.pushMsg(msg)
不起作用。
app.directive("fileread", function (socket) {
return {
scope: {
fileread: "="
},
link: function (scope, element, attributes) {
element.bind("change", function (changeEvent) {
var msg = { author: 'me', class: 'me' };
// WHAT HERE???????
});
}
}
});
boxCtrl = function (socket, $scope) {
this.messages = [];
}
boxCtrl.prototype = {
pushMsg: function (message) {
this.messages.push(message);
}
}
app.controller('boxCtrl', boxCtrl);
您创建一个独立的作用域并将其作为属性传递:
app.directive("fileread", function (socket) {
return {
scope: {
fileread: "=",
pushMessage: "="
},
link: function (scope, element, attributes) {
element.bind("change", function (changeEvent) {
var msg = { author: 'me', class: 'me' };
scope.pushMessage(msg);
});
}
}
});
在您的HTML:中
<div fileread="..." push-message="pushMsg">
编辑:你的控制器应该是这样的:
app.controller('Ctrl', function($scope) {
$scope.messages = [];
$scope.name = function(msg) {
$scope.messages.push(msg);
$scope.$apply(); //I think you need this to update the UI (not sure though)
}
})
相关文章:
- AngularJS:调用函数时编号不更新
- AngularJs.调用$http.success中的jQuery函数
- 无法从angularjs调用JavaScript原型函数
- 从控制器Angularjs调用链接函数
- angularjs调用事件中控制器的一个函数
- angularjs调用另一个控制器's函数
- angularjs调用一个函数
- 直接从Ionic选项卡angularjs调用函数
- 使用angularjs调用普通javascript
- 使用 AngularJS 调用 jQuery 插件函数
- $http angularjs 调用不是从带有 Worklight 的移动设备执行的
- 如何使用基本身份验证从 angularjs 调用 rest 服务
- 我只想要在 php 文件中通过 AngularJS 调用 Ajax 后的成功/失败消息.但是我也得到了带有标签的完整HT
- 从指令视图 AngularJS 调用控制器中的函数
- 从angularjs调用RESTful服务的正确方法
- 回调如何在 AngularJS 调用 REST 服务中工作
- AngularJS:调用嵌套控制器中的JSON数组值
- AngularJS调用空格键上的href(ui路由器)
- 从angularjs调用javascript时出错
- AngularJs调用$http内联方法