我正在使用jk-rating-stars
模块和mdDialog
。它工作正常,但是当评级发生变化时,on-rating
属性不会被调用。
这是我的代码:
$scope.onItemRating = function(rating) {
debugger;
console.log(rating);
console.log("Hello World");
};
var parentEl = angular.element(document.body);
$mdDialog
.show({
parent: parentEl,
targetEvent: $event,
template: '<md-dialog>' +
'<md-dialog-content>' +
'<jk-rating-stars class="my-custom-stars" max-rating="5" rating="rate" on-rating="onItemRating(rating)"></jk-rating-stars>' +
'</md-dialog-content>' +
'</md-dialog>',
clickOutsideToClose: true,
escapeToClose: true
})
.finally(function() {
//alert = undefined;
});
onItemRating
未在控制器中调用。你能帮我解决这个问题吗?
答案 0 :(得分:1)
这可能是因为对话框无法访问定义onItemRating
的范围。
所以,您可以在对话框的控制器中定义方法,如下所示:
$mdDialog.show({
controller: function($scope) {
$scope.onItemRating = function(rating) {
console.log(rating);
console.log("Hello World");
};
},
// The rest of your configs...
});
或者您可以直接将父控制器的$scope
传递给对话框,如下所示:
$mdDialog.show({
scope: $scope.$new(), // Uses prototypical inheritance to gain access to parent scope
// The rest of your configs...
});
这样,对话框将访问您在父控制器的$scope
中定义的任何内容,包括您的onItemRating
函数。