不同控制器中的角度ng-click无效

时间:2016-05-22 11:31:11

标签: angularjs

我有一个名为 ProductCtrl Product.html 页面的控制器。我想在 Product.html 页面中提及内联ng-click。但是,内联ng-click到不同的控制器不起作用。我的代码如下,

var app = angular.module('myapp', []);

app.controller('ProductdetailsCtrl', function($scope) { 

  $scope.showMe = function() {
    alert("button clicked");    
  }
});
<div ng-controller="ProductCtrl">
    <button ng-click="ProductdetailsCtrl.showMe()">Press  me</button>    
</div>

1 个答案:

答案 0 :(得分:2)

如果您还没有使用ProductdetailsCtrl控制器的包装标签,您必须将ng-controller添加到按钮中,如下所示:

&#13;
&#13;
    <div ng-controller="ProductCtrl">
        <button ng-controller="ProductdetailsCtrl" ng-click="showMe()">Press  me</button>    
    </div>
&#13;
&#13;
&#13;

如果您已经使用控制器声明了包装标签,我建议使用控制器的变量。像这样:

&#13;
&#13;
var app = angular.module('myapp', []);

app.controller('ProductdetailsCtrl', function() { 
    var vm = this;
    vm.showMe = function() {
        alert("button clicked");    
    };
});
&#13;
<div ng-controller="ProductdetailsCtrl as ctrl1">
    <div ng-controller="ProductCtrl">
        <button ng-click="ctrl1.showMe()">Press  me</button>    
    </div>
</div>
&#13;
&#13;
&#13;