小编Mik*_*nes的帖子

AngularJS - 为什么使用"Controller as vm"?

这整个周末,我很困扰,不理解为什么父控制器的功能没有被子控制器识别.

我很快意识到将控制器作为vm是原因:

 <div data-ng-controller="ParentCtrl as vm">
   <div data-ng-controller="Child1 as vm"></div>
   <div data-ng-controller="Child2 as vm"></div>
 </div>
Run Code Online (Sandbox Code Playgroud)

当然,现在看来很明显,child1和2都不会在ParentCtrl中看到函数,如果我使用了之前没有vm的工作模式,而是使用$ scope,那么一切都会好的.

所以我的问题是"使用"vm"方法对任何人都有什么好处,如果它优于不使用它,怎么能在ParentCtrl中调用函数调用而不是发出?

谢谢

angularjs

27
推荐指数
4
解决办法
3万
查看次数

AngularJs切换ng-class ng-click

任何人都可以为这个JSFiddle提供正确的方法:

<style>
 .red #btn{
     background-color:red;
  }

 .blue #btn{
    background-color:blue;
  }
 </style>

 <body ng-app="ap" ng-controller="con">
    <button id="btn" ng-click="changeClass()">Change Class</button>    
 </body>

 <script>
  var app = angular.module("ap",[]);

  app.controller("con",function($scope){

  $scope.class = "red";

  $scope.changeClass = function(){
     if ($scope.class === "red #btn")
         $scope.class = "blue #btn";
      else
         $scope.class = "red #btn";
   };
 });

 </script>
Run Code Online (Sandbox Code Playgroud)

JsFiddle链接

我试图通过.class和#ID更改元素的类.

提前致谢

谢谢tymeJV,新JSFiddle:

angularjs

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

angularjs ×2