加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax – 在angular.js中的控制器之间共享变量

发布时间:2020-12-16 03:16:35 所属栏目:百科 来源:网络整理
导读:我是新的角度和我想知道如何我可以在角度控制器之间共享一个变量。我使用以下脚本 – 在Main.js中: function MainCntl($scope) { ---code}function SearchCtrl($scope,$http) { $scope.url = 'http://10.0.0.13:9000/processAdHoc'; $scope.errorM = "No re
我是新的角度和我想知道如何我可以在角度控制器之间共享一个变量。我使用以下脚本 –

在Main.js中:

function MainCntl($scope) {
  ---code
}

function SearchCtrl($scope,$http) {
    $scope.url = 'http://10.0.0.13:9000/processAdHoc';
    $scope.errorM = "No results";     
    $scope.search = function() {

        $http.post($scope.url,{ "data" : $scope.keywords}).
        success(function(data,status) {
            $scope.status = status;
            $scope.data = data;
            $scope.result = data; 
            alert('yes');
        })
        .
        error(function(data,status) {
            $scope.data = data || "Request failed";
            $scope.status = status;   
            alert('no');
            $scope.result = "failed";
        });
    };
}

在Index.html中

<body ng-controller="MainCntl" >
---code
<div ng-controller="SearchCtrl">
     <form class="well form-search">
     <div class="ui-widget">
          <label for="tags"></label>
          <a ng-click="search()"><input type="image" src="../../images/search1.png" class="searchbox_submit" /></a>
          <input ng-model="keywords" placeholder="Shadow Search" id="tags" class="input-medium search-query rounded" /> 
     </div>
     </form>
</div>
---code
<p ng-model="result">
     {{result}}
</p>
</body>

一切工作良好与ajax我发送数据和接收响应,我的问题如下:

在SearchCtrl函数中,我有一个名为$ scope.result的变量,稍后在Index.html中引用。如果我插入包含该变量的html代码到SearchCtrl控制器,它工作正常,但如果它是在MainCtrl控制器,它不工作。如何在控制器之间共享此变量。

先谢谢

使用服务并将它注入到两个控制器,并将范围vars引用到服务变量。

例:

angular.module("yourAppName",[]).factory("myService",function(){

  return {sharedObject: {data: null } }

});

function MainCtrl($scope,myService) {
  $scope.myVar = myService.sharedObject;
}

function SearchCtrl($scope,$http,myService) {
  $scope.myVar = myService.sharedObject;
}

在你的模板做:

{{myVar.data}}

See an example使用Angular v1.1.5

将它放在内部对象中的原因是保留引用,如果保持它没有“sharedObject”,并更改该对象,您的绑定将指向旧的引用,并且不会在模板中显示任何内容。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读