Html 在控制器之间共享对象不会';我无法使用AngularJS中的服务
我有一个简单的应用程序,我想共享一个可以由控制器设置的对象,然后从另一个控制器访问它以完成任务,下面是代码: index.htmlHtml 在控制器之间共享对象不会';我无法使用AngularJS中的服务,html,angularjs,data-binding,scope,angular-services,Html,Angularjs,Data Binding,Scope,Angular Services,我有一个简单的应用程序,我想共享一个可以由控制器设置的对象,然后从另一个控制器访问它以完成任务,下面是代码: index.html <body ng-app="myApp"> <ui-view></ui-view> <!-- All js files included and working --> <script type="text/javascript" src="angular/angular.
<body ng-app="myApp">
<ui-view></ui-view>
<!-- All js files included and working -->
<script type="text/javascript" src="angular/angular.min.js"></script>
<script type="text/javascript" src="angular/angular-ui-router.min.js"></script>
<script type="text/javascript" src="js/myApp.js"></script>
<script type="text/javascript" src="js/farms.js"></script>
</body>
farm.html
{{Data.farm}} <!-- this prints {"idFarm":5} -->
<div ui-sref="sau">GO TO SAU</div>
sau.html:
{{Data.farm}} <!-- this prints {"idFarm":""} -->
{{Data.farm}
当我转到farm.html时,我看到该对象显示为{“idFarm”:5}
,但当我单击我定义的转到SAU
时,它加载SAU.html,但我得到一个空对象{“idFarm”:“}
,因为它是在工厂中定义的,所以两个控制器或两个部件之间没有传递数据,farm.html
&sau.html
提前感谢您的帮助。在myFarmController中,您的代码中不使用该服务 试试这个:
app.controller("myFarmController", function($scope, $http, Data) {
Data.farm.idFarm = 5;
$scope.Data = Data;
}
在myFarmController中,代码中不使用服务 试试这个:
app.controller("myFarmController", function($scope, $http, Data) {
Data.farm.idFarm = 5;
$scope.Data = Data;
}
将对象引用(
Data
service)分配给作用域属性的要点是,它在保存它的所有作用域属性之间共享
你在这里做什么
app.controller("myFarmController", function($scope, $http, Data) {
$scope.Data = {"farm":{"idFarm":5}};
}
正在将新对象分配给$scope.Data
,它与原始数据
对象无关。你应该始终坚持
$scope.Data = Data;
Data.farm = ...;
// or $scope.Data.farm = ...;
在作用域之间共享对象的模式。将对象引用(
数据
服务)分配给作用域属性的要点是,它在持有它的所有作用域属性之间共享
你在这里做什么
app.controller("myFarmController", function($scope, $http, Data) {
$scope.Data = {"farm":{"idFarm":5}};
}
正在将新对象分配给$scope.Data
,它与原始数据
对象无关。你应该始终坚持
$scope.Data = Data;
Data.farm = ...;
// or $scope.Data.farm = ...;
模式在作用域之间共享对象。我现在明白了,非常感谢您的帮助,我希望我也能将此标记为答案。我现在明白了,非常感谢您的帮助,我希望我也能将此标记为答案。