angular-require
angular-require copied to clipboard
$digest already in progress
加载过后的页面再加载报错$digest already in progress
@incomparable9527 能否给个demo?
我在公司项目中已经使用超过一年时间了, 但是没遇到这样的情况
@Treri 我应该用的方法不对,但是公司项目因为历史原因,实在没有办法.
我用require定义了一个app模块
define(["angular", "uiRouter", "ngRequire"], function() {
var app = angular.module('app', ['ngRequire', 'ui.router']);
app.config(function($stateProvider, $urlRouterProvider, $requireProvider) {
$urlRouterProvider.otherwise('/create');
$stateProvider
.state('create', { //创建
url: '/create',
templateUrl: '/assets/templates/promotion/create.html',
controller: 'createController',
resolve: {
deps: $requireProvider.requireJS([
'/assets/javascripts/app/promotion/createController.js'
])
}
})
.state("voucherManage", { //管理
url: "/voucherManage",
templateUrl: "/assets/templates/promotion/voucherManage.html",
controller: "voucherManageController",
resolve: {
deps: $requireProvider.requireJS([
'/assets/javascripts/app/promotion/voucherManageController.js'
])
}
})
});
return app
})
下面是控制器的代码,所有加载进来的控制器都长这个样子 依赖的app,就是上面的代码
define(["app"], function(app) {
app.controller("createController", ["$scope", function($scope) {}])
})
下面是在页面里启动的代码
require([
"app",
"directives",
"services"
], function() {
angular.bootstrap(document, ["app"])
})
用 ui-sref跳转到原来加载过的页面,正常运行 但是用浏览器的后退,回到之前加载过的页面, 就会出现$digest already in progress, 之前也用过你的代码用在其它项目中, 因为app是全局变量,所以没有出现过这个问题,一直都用得非常好. 但是现在的项目 因为历史原因必须要这样加载代码, 要是能知道问题出在哪里,那就再好不过了. 谢谢.
@incomparable9527 我和你的使用方法一样, 没有问题。 我也没使用过全局变量