AngularJS:如何通过单个<ul>元素从“不同的控制器”调用方法?

时间:2016-08-22 10:18:35

标签: javascript angularjs

我们有一个团队一起工作。然后主要app.js(如下所示)由另一个团队提供。 (含义:我无法控制它。所以我无法改变现有的结构。)应用程序类似于:

app
.value('settings', {
    hostUrl: "//example.com",
    endpoint:'/api/events/',
})
.controller('UserCtrl', ['$scope', function($scope){
    $scope.initUser = function(e){
        console.log("User stuffs..");
    }
}])
.controller('EventCtrl', ['$scope', function($scope){
    $scope.initEvent = function(e){
        console.log("Event stuffs..");
    }
}])

(这不是真实的,只是一个示例骨架)

以下是我的部分。我需要分别在单个<ul><li>元素中调用上面的两个方法(在两个控制器中):

<ul>
    <li>User</li>
    <li>Event</li>
</ul>

但:
到目前为止我所理解的(我能做什么)是这样的:

<ul ng-controller="UserCtrl">
    <li ng-click="initUser();">User</li>
</ul>
<ul ng-controller="EventCtrl">
    <li ng-click="initEvent();">Event</li>
</ul>

我如何才能在单<ul> list内拨打此电话?喜欢在:

<ul>
    <li>User</li>
    <li>Event</li>
</ul>

感谢大家帮忙:)

2 个答案:

答案 0 :(得分:3)

任何需要跨控制器边界工作的数据或功能都应该实现为service

答案 1 :(得分:1)

你尝试过这个吗?

<ul>
    <li ng-controller="UserCtrl" ng-click="initUser();">User</li>
    <li ng-controller="EventCtrl" ng-click="initEvent();">Event</li>
</ul>