如何"返回两次" (两个属性)来自AngularJS工厂?

时间:2014-09-14 23:38:19

标签: javascript angularjs

这里非常基本的问题,但我如何从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

1 个答案:

答案 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);