我有一个AngularJS应用程序,我开始使用protected void Page_Load(object sender, EventArgs e){
if (!IsPostBack)
{
txtTrailerType.Text="";
}
}
指令定义控制器的视图文件。
myview.html
ng-controller
但是,我现在正在使用路由,我的控制器被定义为我的routeProvider配置的一部分。
myview.html
<div ng-controller="MyController">
<ul>
<li class="thumb" ng-repeat="item in items">
<span profile ng-click="getItem(item.id)"></span>
</li>
</ul>
</div>
router.js
<div>
<ul>
<li class="thumb" ng-repeat="item in items">
<span profile ng-click="getItem(item.id)"></span>
</li>
</ul>
</div>
这样可行,但是起初看起来这似乎帮助我将我的视图与控制器分离,因为我仍然在视图中引用了范围成员变量,这些内容与我的控制器相关联。
我在这里遗漏了什么吗?我在routeProvider中指定.when('/homepage', {
templateUrl: 'templates/myview.html',
controller: 'MyController'
})
而不是在我的模板中获得了什么?
答案 0 :(得分:2)
出于所有实际目的,除了符合AngularJS中定义路径,视图和控制器的标准方法之外,我不相信你获得了任何东西。
如果我们正在考虑编程原理和MVC,你的视图现在对控制器一无所知,它只依赖于模型(角度为$scope
),这很好,在MVC架构中完全正常。
答案 1 :(得分:1)
通过在路径中定义控制器,您可以在多个控制器中使用相同的视图(模板)(并传递不同的范围数据)
例如:
.when('/homepage', {
templateUrl: 'templates/myview.html',
controller: 'MyController'
})
.when('/list', {
templateUrl: 'templates/myview.html',
controller: 'MyListController'
})