gpt4 book ai didi

angularjs - 使用 "controllerAs"属性的原因是什么?

转载 作者:行者123 更新时间:2023-12-04 05:48:20 27 4
gpt4 key购买 nike

我正在编写 AngularJS 教程,我看到以下代码:

.state('index',{
url:"/",
templateUrl:"views/index.html",
controller:"IndexCtrl",
controllerAs:"index"
})
有人想要使用 controllerAs 的原因是什么?属性(property)?

最佳答案

几样东西:

1. 减少范围使用

您可以简单地使用 this,而不是加载 Controller 范围内的每个数据。加载您需要的一切。

例如:

路线

state('index',{
url:"/",
templateUrl:"views/index.html",
controller:"ListCtrl",
controllerAs:"list"
})

在 Controller 中
angular.module('feed').controller('ListCtrl', function($scope, reddit){
var vm = this;
vm.names = ["Michael", "Roy"];

});

在模板中:
<ul>
<li ng-repeat="name in list.names">
<div>{{name}}</div>
</li>
</ul>

2. 正确的作用域用法

当多个 Controller 发挥作用时,范围变得很棘手。使用 controllerAs方法将有很长的路要解决这个问题。一个例子如下所示:

错误的:
<span>Outside Controller: Your name is: {{username}}</span>
<div ng-controller="SignupController">
<span>Inside Controller: Your name is: {{username}}</span>
<fieldset legend="User details">
<input ng-model="username">
</fieldset>
</div>

正确的:
<span>Outside Controller: Your name is: {{user.name}}</span>
<div ng-controller="SignupController">
<span>Inside Controller: Your name is: {{user.name}}</span>
<fieldset legend="User details">
<input ng-model="user.name">
</fieldset>
</div>

找到一张让一切更清晰的图片 :

enter image description here

礼貌 : AngularJs "controller as" syntax - clarification?

关于angularjs - 使用 "controllerAs"属性的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31838265/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com