所以,我试图使用$ mdDialog并且似乎无法将值传递给控制器
我的电话是这个
function myCtrl($mdDialog) {
var ctrl = this;
ctrl.showModal = function(item) {
$mdDialog.show({
controller: modalController,
controllerAs: 'controller',
locals: { data: {value: item}},
templateUrl: '/myModal.html',
parent: angular.element(document.body)
})
.then(function(answer) {
console.log("'#1",answer);
}, function() {
console.log("cancelled");
});
};
}
function modalController($scope,data) {
console.log(data);
}
从ng-click调用showModal(),传入一个值(即ng-click =" ctrl.showModal(10)")
当我按下按钮时,我在控制台中得到以下内容..
anonymous(expression, locals, later, ident)
我实际上希望看到{值:" 10"}
如何获取数据变量/属性的值?
感谢
更新#1 如果我添加
bindToController: true,
foobar: true,
并将控制器定义更改为
function modalController($mdDialog) {
var controller = this;
console.log(controller.foobar,controller.locals);
}
我似乎能够传入对$ mdDialog
的调用中指定的任何选项即如果我说xyz:" abc"那么我可以参考controller.xyz,它确实是" abc"
这是有效的吗?它没有味道......
更新#2
解决了原来的问题:我用
指定了modalControllermodalController.$inject['$scope','$controller']
意外地在文件的顶部 - 所以事情被搞砸了。
我更正了
modalController.$inject['$scope', '$mdDialog', 'data'];
我也有错误的参数传递给函数,应该是
function modalController($scope,$mdDialog,data)
所以,我原来的问题已经解决了。
但是,我仍然对更新#1感兴趣,当使用bindToController时我可以在选项中设置任何属性