我正在使用gulp-angular-templatecache
將我所有的filename.view.html
文件轉換爲templates.js
文件。
然後,我使用$stateProvider
創建我的狀態,並使用$templateCache
創建我的狀態並使用抽象的「根」狀態。
$stateProvider
.state('app', {
abstract: true,
template: '<div ui-view></div>'
})
.state('app.login', {
url: '/login',
template: $templateCache.get('components/login/login.html'),
controller: 'LoginController as login'
});
到目前爲止,一切正常。這些模板就像他們應該加載到我的頁面一樣,但無論我做什麼,我都無法讓控制器工作。
我的模塊和相關的控制器都相對簡單:
(function() {
'use strict';
angular
.module('login', [])
.controller('LoginController', LoginController);
function LoginController() {
var vm = this;
vm.loginID = 'test';
vm.password = 'test';
vm.doLoginRequest = function() {
console.log('Performing login request...');
}
}
})();
我試圖圍繞這幾個不同的方式,但沒有出現工作:
- 感動模板到的該
.run(...)
節模塊,並將其推入$templateCache
,而不是 template
,templateUrl
和的不同變化的狀態配置- 從狀態卸下controllerAs語法和使用
ng-controller
代替 - 使用舊式控制器語法的內部(即不是控制器的語法)
有沒有人有任何建議我可以如何解決這個問題?我一直在扯我們的頭髮幾個小時!
你如何包含你的控制器的'登錄'模塊。你也不需要調用'$ templateCache.get()'。你可以做'templateUrl:'components/login/login.html'。 – rob
您的路線是否在登錄模塊下定義爲配置?你的路線定義了哪個模塊? – Ajai
「登錄」模塊僅作爲我的主應用程序模塊的依賴項包含在內。我的所有路由都在'.config(...)中定義)'塊作爲主應用程序模塊的一部分,例如'angular.module('app',['login']).config(function($ stateProvider){....});' –