如何在AngularJS ng-click中将数据设置为服务功能

时间:2016-05-03 23:01:36

标签: javascript html angularjs

我试图在服务中保留信息,以便我可以跨控制器访问数据。这是我试过的:

HTML:

<div ng-app="myApp">

    <div  ng-controller="ControllerOne as one">
        <h2>ControllerOne:</h2>
<table>
 <tbody>
    <tr ng-repeat="emp in EmployeeInfo">
      <td>{{emp.name}}</td>
       <td>{{emp.hireDate}}</td>
       <td><a class="btn-sm btn-primary pull-right" ng-click="storeIds({{emp.idUser}})" >E-Verify</a></td>
     </tr>
  </tbody>
</table>
        Change testService.loginName: <input type='text' ng-model='one.myService.UserId'/> </br></br>
        myName: {{one.myService.UserId}}
    </div>
    <hr>
    <div ng-controller="ControllerTwo as two">
        <h2>ControllerTwo:</h2>
        myName: {{two.myService.UserId}}
    </div>

</div>

JS:

app.service('testService', function(){
    this.UserId= uId;
});

app.controller('ControllerOne', function($scope, testService){
    $scope.storeIds = function (userid) {
      // HERE I want to call the testService and set the value.  
    }
    this.myService = testService;
});

app.controller('ControllerTwo', function($scope, testService){
    this.myService = testService;
});

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用$ rootScope?

app.controller('ControllerOne', function($scope, rootScope, testService){
$scope.storeIds = function (userid) {


  // HERE I want to call the testService and set the value.  
}
$rootScope.myService = userid;
});

app.controller('ControllerTwo', function($scope, ,rootScope, testService){
//rootScope.myService will now equal whatever the userid was in the other controller. 
//I skipped using the service

});