我是棱角分明的新手,我面临一个奇怪的问题: 无法将字符串从一个控制器传递到另一个控制器。
我正在尝试一些事情,包括使用JQuery设置数据属性,这对我来说没有Angular。 然后通过"服务"来实现它。 它对我不起作用。可能我混淆了一些东西。
任何人都可以提供清晰简单的演示。
提前致谢!
答案 0 :(得分:0)
见下面的代码。您需要编写一个共享服务来保存您的城市名称(请参阅我在演示中创建的服务),然后您需要将城市保存在共享服务中,无论您从服务器获取城市。
在另一个控制器中,您需要从共享服务中获取该城市名称。
var mainMod = angular.module('MainApp', []);
mainMod.controller('MainCtrl', ['$scope','dataShare',
function ($scope,dataShare) {
$scope.city = 'London';
$scope.send = function(){
dataShare.saveCity($scope.city);
};
}
]);
mainMod.controller('MainCtrl2', ['$scope','dataShare',
function ($scope,dataShare) {
$scope.getSavedCity = function(){
$scope.cityInAnotherController = dataShare.getData();
}
}
]);
mainMod.factory('dataShare',function($rootScope){
var service = {};
service.saveCity = function(data){
this.data = data;
};
service.getData = function(){
return this.data;
};
return service;
});

<!-this is your HTML ->
<html >
<head>
<script data-require="angular.js@*" data-semver="2.0.0" src="https://code.angularjs.org/1.4.8/angular.js
"></script>
<script data-require="jquery@*" data-semver="2.1.4" src="https://code.jquery.com/jquery-2.1.4.js"></script>
</head>
<body ng-app='MainApp'>
<div ng-controller='MainCtrl'>
<div>
<h4>Ctrl1</h4>
<div>{{text}}</div>
<input type='text' ng-model='city' />
<button type='button' ng-click='send();'>Send Data</button>
{{city}}
</div>
</div>
<div ng-controller='MainCtrl2'>
<div>
<h4>Ctrl2</h4>
<button ng-click="getSavedCity()">Get Saved City </button>
<div>{{cityInAnotherController}}</div>
</div>
</div>
</body>
</html>
&#13;
答案 1 :(得分:0)
这对我亲爱的专家来说是有用的。
function selectedItemChange(item) {
document.cookie = item.value;
$('#dcity').show();
}
...
url ='/ api / Country /'+ document.cookie;
我几乎整天都在尝试服务,工厂和所有模式......