今天在嘗試用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還是挺複雜的,功力不夠