HTML:
<html ng-app="san">
<head>
</head>
<body ng-controller="sanctrl">
<div>
AngularJS</div>
<div ng-view="">
</div>
<button type="button" ng-click="init()" class="btn btn-blue">
Save</button>
</body>
</html>
主控制器:
san.controller('sanctrl', function ($scope, $http, $q, $location, $anchorScroll, $filter, dataFactory) {
//nothing in this controller.
});
ng-view controller:
san.app.controller('cereals', function ($scope, dataFactory) {
$scope.init(){
$scope.test = "test";
};
});
我试图从ng-view范围之外调用init方法。可能吗?如果没有那么我们有什么选择?
答案 0 :(得分:1)
您可以使用触发的广播事件:
$rootScope.$broadcast('testEvent', testArray);
然后在第二个控制器中你可以听取这个事件:
$scope.$on('testEvent', function(event, array) {
// Do stuff here
});
答案 1 :(得分:0)
作为@ lulu88,您可以使用除此之外的$broadcast
写一个单独的服务将int()
函数中的代码移动到那个,然后你可以从任何控制器访问