0
例如,我有這樣簡單的片斷:
var sampleApp = angular.module('sampleApp', []);
sampleApp.config(['$routeProvider',
function($routeProvider, $rootScope) {
$routeProvider.
when('/AddNewOrder', {
templateUrl: 'add_order.html',
controller: 'AddOrderController'
}).
when('/ShowOrders', {
templateUrl: 'show_orders.html',
controller: 'ShowOrdersController'
}).
otherwise({
redirectTo: '/AddNewOrder'
});
}]);
sampleApp.controller('AddOrderController', function($scope, $rootScope) {
$scope.message = 'This is Add new order screen';
$scope.$on('$viewContentLoaded', function (event, toState, toParams, fromState, fromParams) {
console.log("Add new order");
});
});
sampleApp.controller('ShowOrdersController', function($scope,$rootScope) {
$scope.message = 'This is Show orders screen';
$scope.$on('$viewContentLoaded', function (event, toState, toParams, fromState, fromParams) {
console.log("Show orders");
});
});
完整版,你可以在這裏看到:http://plnkr.co/edit/jc3nFBAaBLMiGMYV4TZW?p=preview
哪裏是有些奇怪:
$scope.$on('$viewContentLoaded', function (event, toState, toParams, fromState, fromParams) {
console.log("Add new order");
和
$scope.$on('$viewContentLoaded', function (event, toState, toParams, fromState, fromParams) {
console.log("Show orders");
});
每個調用兩次單擊鏈接時。 另外我嘗試使用'$ routeChangeSuccess',但結果相同。 爲什麼會發生? 需要做些什麼才能獲得$ scope的單個調用$ on(..)?
你的鏈接與他們的hrefs?明顯調用路由的原因 – misha130
只需檢查是否包含控制器兩次(一次在您的狀態中,一次在您的html中作爲ng-controller) –