这里非常基本的问题,但我如何从angularJS工厂返回多个属性?我意识到在我的代码中,只有第一个返回将运行,只有消息将传递给其他范围。有什么方法可以解决这个问题?
app.js
practice.factory('Data', function(){
return {message: "I'm data from a service"};
return {number: "twenty"};
});
practice.controller('FactoryOneController',['$scope','Data', function($scope, Data){
$scope.data = Data;
}]);
practice.controller('FactorySecondController',['$scope','Data', function($scope, Data){
$scope.data = Data;
}]);
<div ng-controller="FactoryOneController">
<input ng-model="data.message">
{{data.message}}
<input ng-model="data.number">
{{data.number}}
</div>
<div ng-controller="FactoryOneController">
<input ng-model="data.message">
{{data.message}}
<input ng-model="data.number">
{{data.number}}
</div>
的index.html
答案 0 :(得分:4)
将事物组合在一起并使用多个键返回单个对象!
所以,而不是做:
practice.factory('Data', function(){
return {message: "I'm data from a service"};
return {number: "twenty"};
});
......这样做:
practice.factory('Data', function(){
return {message: "I'm data from a service", number: "twenty"};
});
然后,稍后在您的Controller中,您可以执行以下操作:
$scope.data = Data;
doSomething($scope.data.message);
doSomething($scope.data.number);