javascript – 在控制器内使用此代替$scope
作者:互联网
我正在尝试按照角度的样式指南,并写道我们应该使用这个insted范围…
当我能够使用它时,有人可以解释我吗?
这是我的尝试…..我做错了什么?
我试图切换形式….
这是我的HTML代码:
<a href="#" ng-click="formEdit(x)" ng-if="!x.formEditShow">REPLY</a>
<a href="#" ng-click="formEdit(x)" ng-if="x.formEditShow" >CLOSE</a>
使用经典的$scope我会在我的控制器中这样做:
$scope.formEdit = function(data){
data.formEditShow = !data.formEditShow;
}
但有了它,它应该看起来像这样(但不起作用):
var vm = this;
vm.formEdit = formEdit;
function formEdit(data){
data.formEditShow = !data.formEditShow;
}
有人可以帮我理解这个吗?
解决方法:
当您在控制器而不是$scope中使用此(上下文)时,必须在定义页面上的html时使用controllerAs来访问控制器变量.每当你想在视图上使用变量限制时,你可以使用你的控制器的别名.下面你可以看到vm是控制器的别名.
ng-controller="myController as vm"
然后在访问控制器方法时,ng-controller div中的变量需要使用控制器的别名,如ng-click =“vm.formEdit(x)”
HTML
<a href="#" ng-click="vm.formEdit(x)" ng-if="!x.formEditShow">REPLY</a>
<a href="#" ng-click="vm.formEdit(x)" ng-if="x.formEditShow" >CLOSE</a>
标签:javascript,angularjs,angularjs-scope,angularjs-controller,angularjs-controlleras 来源: https://codeday.me/bug/20190516/1116830.html