angular-1.2.32路由控制寫法與《SPA設計與架構》寫法的部分區別

          今天在嘗試用angularJS寫一則簡單的單頁面程序時,所用ide爲idea的angularJS插件,發現了再路由控制寫法與之前所讀書籍(《SPA設計與架構》作者:Emmit A.Scott)有部分出入。

在用idea創建一個angular app時,給的樣例代碼如下

view2.html:

<p>This is the partial for view 2.</p>
<p>
  Showing of 'interpolate' filter:
  {{ 'Current version is v%VERSION%.' | interpolate }}
</p>
view2.js:
'use strict';

angular.module('myApp.view2', ['ngRoute'])

.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/view2', {
    templateUrl: 'view2/view2.html',
    controller: 'View2Ctrl'
  });
}])

.controller('View2Ctrl', [function() {

}]);
上段代碼可簡單理解爲,路由到view2視圖後,控制器view2ctrll開始起作用

此時我想在控制器view2ctrll給scope綁定參數strs=“測試用的”(用來測試的字符串),並在view2中顯示出來,於是按照書中方式並參考網上所查方式嘗試編寫代碼

view2.html

<div ng-controller="View2Ctrl">
  <p>This is the partial for view 2.{{strs}}</p>
</div>
view2.js中控制器的寫法
.controller('View2Ctrl', [$scope,function($scope) {
           $scope.strs="測試用的";
}]);
測試發現不起任何作用只會原樣顯示{{strs}}在網頁中

在苦苦在搜不到解決方法後偶然發現解決方法

控制器寫法應爲

.controller('View2Ctrl', function($scope) {
           $scope.strs="測試用的";
});
即沒有“[ ]”,不用在其裏面寫組件名,之間在後面函數添加即可。但是在例如“angular.module('myApp.view2', ['ngRoute'])”中時,即模塊聲明依賴添加方式必須用到“[ ]”來添加依賴項

此外在view2.html中也不必加ng-controller=“控制器名”,此時可正常顯示


第一次嘗試用angularJS寫web還是挺複雜的,功力不夠




                                              
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章