Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularjs从服务中设置并获取值_Javascript_Angularjs - Fatal编程技术网

Javascript angularjs从服务中设置并获取值

Javascript angularjs从服务中设置并获取值,javascript,angularjs,Javascript,Angularjs,关于noob的问题很抱歉,我是AngularJS的新手。 我有一个服务和两个控制器,一个用于我的主页,另一个用于我要动态创建的页面 我想从我的服务中的第一个控制器(主页)设置一个对象,然后在第二个控制器(在我将使用表单操作调用的新html页面上)中获取该对象,并显示该对象的一些属性 我该怎么做 谢谢 编辑 我需要的样本: index.html <html> <script src="https://ajax.googleapis.com/ajax/libs/angul

关于noob的问题很抱歉,我是AngularJS的新手。 我有一个服务和两个控制器,一个用于我的主页,另一个用于我要动态创建的页面

我想从我的服务中的第一个控制器(主页)设置一个对象,然后在第二个控制器(在我将使用表单操作调用的新html页面上)中获取该对象,并显示该对象的一些属性

我该怎么做

谢谢

编辑 我需要的样本:

index.html

<html>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <script src="app.js"></script>
    <body ng-app="app">
        <div ng-controller="firstCtrl">
            First Controller
            <button ng-click="add()">add</button>
            {{data.value}}
            <hr/>
            <a href="index2.html">Aqui!</a>
         </div>
    </body>
</html>

<html>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <body ng-app="app">
        <div ng-controller="secondCtrl">
            Second Controller
            <button ng-click="add()">add</button>
            {{data.value}}
            <hr/>
         </div>
    </body>
</html>


http://plnkr.co/edit/sSBnE7gllFc0F6197cUD?p=info
index.html
第一控制器
添加
{{data.value}}

第二控制器 添加 {{data.value}}
http://plnkr.co/edit/sSBnE7gllFc0F6197cUD?p=info
将服务注入第一个控制器,在其上设置一个对象。将相同的服务注入到第二个控制器和viola中-对象就在那里

将服务注入第一个控制器,在其上设置一个对象。将相同的服务注入到第二个控制器和viola中-对象就在那里

var-app=angular.module('app',[]);
app.service('dataService',function()){
var_data={value:0};
返回{
数据:_数据
};
});
app.controller('firstCtrl',函数($scope,dataService){
$scope.data=dataService.data;
$scope.add=函数(){
$scope.data.value++;
};
});
app.controller('secondCtrl',函数($scope,dataService){
$scope.data=dataService.data;
$scope.add=函数(){
$scope.data.value++;
};
});

第一控制器
添加
{{data.value}}

第二控制器 添加 {{data.value}}
var-app=angular.module('app',[]);
app.service('dataService',function()){
var_data={value:0};
返回{
数据:_数据
};
});
app.controller('firstCtrl',函数($scope,dataService){
$scope.data=dataService.data;
$scope.add=函数(){
$scope.data.value++;
};
});
app.controller('secondCtrl',函数($scope,dataService){
$scope.data=dataService.data;
$scope.add=函数(){
$scope.data.value++;
};
});

第一控制器
添加
{{data.value}}

第二控制器 添加 {{data.value}}

在这种情况下,您可以使用ngStorage,因为在整个页面重新加载后,服务中的数据将被销毁

请看这里的演示

JS:

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


app.controller('firstCtrl', function($scope,  $localStorage) {


  $scope.storage = $localStorage.$default({myValue: 0 });

});

app.controller('secondCtrl', function($scope,  $localStorage) {


 $scope.storage = $localStorage;
});
HTML1

<html>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
        <script src="https://rawgithub.com/gsklee/ngStorage/master/ngStorage.js"></script>
    <script src="app.js"></script>
    <body ng-app="app">
        <div ng-controller="firstCtrl">
            First Controller
           <button ng-click="storage.myValue = storage.myValue + 1">{{storage.myValue}}</button>
            {{service.data.value}}
            <hr/>
            <a href="index2.html">Aqui!</a>
         </div>
    </body>
</html>

第一控制器
{{storage.myValue}}
{{service.data.value}

HTML2

<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://rawgithub.com/gsklee/ngStorage/master/ngStorage.js"></script>
<script src="app.js"></script>

<body ng-app="app">
  <div ng-controller="secondCtrl">
    Second Controller myValue is: {{storage.myValue}}
  </div>
  <a href="index.html">Page 1</a>
</body>

</html>

第二个控制器myValue为:{{storage.myValue}}

在这种情况下,您可以使用ngStorage,因为在整个页面重新加载后,服务中的数据将被销毁

请看这里的演示

JS:

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


app.controller('firstCtrl', function($scope,  $localStorage) {


  $scope.storage = $localStorage.$default({myValue: 0 });

});

app.controller('secondCtrl', function($scope,  $localStorage) {


 $scope.storage = $localStorage;
});
HTML1

<html>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
        <script src="https://rawgithub.com/gsklee/ngStorage/master/ngStorage.js"></script>
    <script src="app.js"></script>
    <body ng-app="app">
        <div ng-controller="firstCtrl">
            First Controller
           <button ng-click="storage.myValue = storage.myValue + 1">{{storage.myValue}}</button>
            {{service.data.value}}
            <hr/>
            <a href="index2.html">Aqui!</a>
         </div>
    </body>
</html>

第一控制器
{{storage.myValue}}
{{service.data.value}

HTML2

<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://rawgithub.com/gsklee/ngStorage/master/ngStorage.js"></script>
<script src="app.js"></script>

<body ng-app="app">
  <div ng-controller="secondCtrl">
    Second Controller myValue is: {{storage.myValue}}
  </div>
  <a href="index.html">Page 1</a>
</body>

</html>

第二个控制器myValue为:{{storage.myValue}}

两个控制器都可以注入相同的服务。对象是相同的——所有角度服务都是单例的。如果你发布一些代码,我们可能会提供更大的帮助。让我们看看你试过什么。一个小提琴更好。两个控制器都可以注入相同的服务。对象是相同的——所有角度服务都是单例的。如果你发布一些代码,我们可能会提供更大的帮助。让我们看看你试过什么。小提琴更好。如果在同一个视图中调用两个控制器,它就会工作。这就是我的意思,如果在同一个视图中调用两个控制器,它就会工作。这就是我的意思