数据不在控制器之间传递

时间:2017-09-09 09:05:43

标签: angularjs service controller

您好我正在尝试将数据从一个控制器传递到另一个控制器,但数据未显示在UI的另一端。

这是我的服务代码: -

app.factory('ServiceF', function($rootScope) {

 var service = {};
  service.data = false;
  service.sendData = function(data){
      this.data = data;
      $rootScope.$broadcast('data_shared');
  };
  service.getData = function(){
    return this.data;
  };
  return service;
});

控制器1代码: -

app.controller('Ctrlone', ["$scope", "ServiceF", function ($scope, ServiceF) {

$scope.Info= {};
        $scope.ser= function(){
          ServiceF.sendData($scope.Info);
           console.log($scope.Info);
           };
    }]);    

$scope.Info数据来自其他来源,我尚未发布。但它即将到来。

控制器2: -

app.controller('Ctrltwo', ["$scope" ,"ServiceF",
function($scope , ServiceF) {
$scope.Info= '';
                $scope.$on('data_shared',function(){
                   var good = ServiceF.getData();    
             $scope.Info = good;
        });
}]);

我想要显示信息的用户界面: -

<div class="col-sm-8">
            <h1 class="mainTitle">Ok Start </h1>
            <h2>{{good}}</h2>

</div>

第一个UI的按钮点击功能: -

<label class="cardlabel" style="width:11vw" ui-sref="uitwo" ng-click="ser()">Send</label>

现在我哪里错了?信息未显示在第二个UI上。如何检查数据是否正在传递服务?

1 个答案:

答案 0 :(得分:0)

您的范围中没有名为good的属性。因此{{ good }}将始终为空。

scope属性名为Info。所以你想要{{ Info }}