Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angular j s – Ng click click大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Ng-click在Ng-repeat内不起作用。外面工作。
我把一个 fiddle here
<div ng-controller="MyCtrl">
 <a ng-click="triggertitle='This works!'">test</a>
    <h5>Please SELEct trigger event: [{{triggerEvent}}] {{triggertitlE}}</h5>
       <ul class="dropdown-menu">
         <li ng-repeat="e in events">
             <a ng-click="triggertitle=e.name; triggerEvent = e.action;">{{e.action}} - {{e.namE}}</a>
         </li>
       </ul>
</div>
正如Ven所说,ng-repeat为循环中的每个项目创建一个子范围。子范围可以通过原型继承来访问父范围的变量和方法。令人困惑的部分是做出赋值时,它会向子范围添加一个新变量,而不是更新父作用域上的属性。点击后,当你做一个分配调用tiggertitle = e.name,它实际上添加一个名为triggertitle的新变量到子作用域。 AngularJS文档在这里称为 JavaScript Prototypal Inheritance的部分解释得很好。

那么你如何解决这个问题,并且正确设置模型变量?

一个简单而肮脏的解决方案是使用$ parent访问父范围。

<a ng:click="$parent.triggertitle=e.name; $parent.triggerEvent = e.action;">...

Click to see a working version of your Fiddle using the $parent solution.

如果您正在处理嵌套模板或嵌套的重复序列,则使用$ parent可能会导致问题。更好的解决方案可能是向控制器的范围添加一个函数,该函数返回对控制器范围的引用。如前所述,子范围可以访问父函数,从而可以引用控制器的作用域。

function MyCtrl($scopE) {
    $scope.getMyCtrlScope = function() {
         return $scope;   
    }
 ...

<a ng-click="getMyCtrlScope().triggertitle=e.name;getMyCtrlScope().triggerEvent = ...

Click to see a working version of your Fiddle using the better method

大佬总结

以上是大佬教程为你收集整理的angular j s – Ng click click全部内容,希望文章能够帮你解决angular j s – Ng click click所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。