【发布时间】:2014-10-10 07:56:46
【问题描述】:
我正在使用 Angular UI-router 并尝试在路由更改时下载/加载控制器。我使用了resolve和category,data.data将js文件内容作为字符串返回。我不确定使控制器可用于角度。请帮忙
我的 module.js 包含以下路由代码
state("privacy", {
url: "/privacy",
controllerProvider: function ($stateParams) {
return "PrivacyController";
},
resolve: {
category: ['$http', '$stateParams', function ($http, $stateParams) {
return $http.get("js/privacy.js").then(function (data) {
return data.data;
});
} ]
},
templateUrl: localPath + "templates/privacy.html"
})
以下控制器存在于“js/privacy.js”中
socialinviter.controller("PrivacyController", function ($scope) { $scope.me = "你好世界"; });
我也尝试过使用 require js,但出现错误“http://errors.angularjs.org/1.2.16/ng/areq?p0=PrivacyController&p1=not%20aNaNunction%2C%20got%20undefined”
resolve: {
deps: function ($q, $rootScope) {
var deferred = $q.defer(),
dependencies = ["js/privacy"];
require(dependencies, function () {
$rootScope.$apply(function () {
deferred.resolve();
});
deferred.resolve()
})
return deferred.promise;
}
}
【问题讨论】:
-
PrivacyController是否在 data.data 中定义? -
PrivacyController 在单独的文件中定义,$http.get 正在下载该文件,data.data 包含 socialinviter.controller("PrivacyController", function ($scope) { $scope.me = "你好世界"; });
-
你不能那样做。你只是在下载一个文件..
-
我也试过用requirejs,看上面的代码,它下载文件但它抛出错误。
标签: angularjs angularjs-scope angular-ui-router