angular-1.2.32路由控制写法与《SPA设计与架构》写法的部分区别

来源:互联网 发布:霍建华演技知乎 编辑:程序博客网 时间:2024/05/17 08:28

          今天在尝试用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还是挺复杂的,功力不够




                                              
0 0