编程语言
首页 > 编程语言> > javascript – 在控制器内使用此代替$scope

javascript – 在控制器内使用此代替$scope

作者:互联网

我正在尝试按照角度的样式指南,并写道我们应该使用这个insted范围…

Styleguide

当我能够使用它时,有人可以解释我吗?

这是我的尝试…..我做错了什么?

我试图切换形式….
这是我的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