我正在使用Twitter Bootstrap處理AngularJS Web應用程序。模板和控制器運行兩次。我不知道他們爲什麼這樣做。AngularJS模板運行兩次
下面是一些index.html文件中的代碼:
<html data-ng-app="app" ng-controller="AppCtrl">
<div class="container ng-view" data-ng-view></div>
...
<script>
(function (angular) {
"use strict"; // jshint ;_;
// http://coenraets.org/blog/2012/02/sample-application-with-angular-js/
angular.module('app', ['filters', 'angular', 'currency'])
.config(function($routeProvider) {
var _view_ = 'view/';
$routeProvider.
when('/app', {templateUrl:_view_+'app/index.html', }).
when('/account/settings', {templateUrl:_view_+'app/settings.html', }).
when('/profile/:profile_ID', {templateUrl:_view_+'app/profile.html', controller:ProfilePageCtrl}).
when('/discuss', {templateUrl:_view_+'discuss/discuss.html', controller:DiscussCtrl}).
when('/', {templateUrl:_view_+'page/home.html' }).
when('/:page', {templateUrl:_view_+'page.html', controller:PageCtrl}).
otherwise({redirectTo:'/'});
})
...
任何人都可以提供建議?模板和控制器是否應該運行兩次?
2012-12-04更新:我發現模板運行了兩次,不管是否有控制器。如果模板具有控制器,則控制器也運行兩次。
你能否提供一個http://plnkr.co/?它很難通過閱讀來理解代碼。 – Max
另外,確保你沒有使用'ngController'指令從你的任何模板中聲明相同的控制器。 – jaime
@Max我添加到plnkr.co,但我不知道如果我做對了。你可以在這裏看到它:http://plnkr.co/edit/z6ylRIpcNAFZF8xMxgDB jm:我檢查了,我不認爲我是從任何其他模板聲明相同的控制器,你可以在我上面的代碼中看到。 – Curt