JavaScript |角度|控制器作为语法:不能使用`this`
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript |角度|控制器作为语法:不能使用`this`,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1192字,纯文字阅读大概需要2分钟。
内容图文
![JavaScript |角度|控制器作为语法:不能使用`this`](/upload/InfoBanner/zyjiaocheng/704/064090f9bb4d4852b71113a73124ab45.jpg)
不能使用ControllerAs
有人可以向我解释以下情况吗?
作品
ng-controller="Parent as thus"
休息
ng-controller="Parent as this"
那个使它成为关键词的单个字母 – 我想要的 – 破坏森林.
为什么是这样?
附:我知道vm约定,但我发现它扰乱了控制器/视图模型的可移植性.
解决方法:
问题当然不是这是JavaScript中的保留字.
控制器中没有规则作为语法,表示你需要将this的值赋给一个与控制器同名的变量,而且我确定angular也不会做这样的事情.为什么会这样?那将是令人难以置信的使用Function构造函数的愚蠢而只是一个不必要的bug.
有一种简单的方法来测试JavaScript保留字不是问题.将控制器命名为“throw”. “父母投掷”. throw是一个保留字,但这会引发错误吗?不,那有用吗?是.
但是,这是在angular自己的模板表达式的上下文中保留的.它用于指代表达式的当前范围.
<div ng-controller="Parent as this">
{{log(this)}}
</div>
angular.module('testApp', []).controller('Parent', function($scope){
this.test = 'foo';
$scope.log = function(arg){
console.log(arg);
};
});
以上不会抛出错误,但也不会记录控制器.相反,它将记录一个包含日志函数和$parent的范围对象,而不是.
事实上,它也会包含一些对我们有用的东西:属性this:Object,我们的控制器.
当然,将模板表达式更改为{{log(this.this)}},它将记录控制器实例.尽管如此,仍然不会使用’this’作为名称,它可能只会导致错误,而不是未定义的函数.
内容总结
以上是互联网集市为您收集整理的JavaScript |角度|控制器作为语法:不能使用`this`全部内容,希望文章能够帮你解决JavaScript |角度|控制器作为语法:不能使用`this`所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。