控制器之间通信的正确方法是什么?
我目前正在使用一种可怕的软糖包括window:
function StockSubgroupCtrl($scope, $http) {
$scope.subgroups = [];
$scope.handleSubgroupsLoaded = function(data, status) {
$scope.subgroups = data;
}
$scope.fetch = function(prod_grp) {
$http.get('/api/stock/groups/' + prod_grp + '/subgroups/').success($scope.handleSubgroupsLoaded);
}
window.fetchStockSubgroups = $scope.fetch;
}
function StockGroupCtrl($scope, $http) {
...
$scope.select = function(prod_grp) {
$scope.selectedGroup = prod_grp;
window.fetchStockSubgroups(prod_grp);
}
}
Run Code Online (Sandbox Code Playgroud) 这适用于现代Chrome/Firefox/Opera,但在IE8中失败.没有在IE9中尝试过.如何使这种跨浏览器兼容,包括IE7 +?(小提琴.)
var foo = {
get test(){ return 'Works'; }
};
// foo.test should be 'Works'
Run Code Online (Sandbox Code Playgroud)
我已经看到了一些用法,__defineGetter__但在IE8中引发了"无法识别的方法"错误.
javascript getter internet-explorer cross-browser getter-setter