如何将变量放在角度工厂中

时间:2015-10-07 16:11:20

标签: javascript angularjs variables

你好(一种新手问题),

我有以下内容:

 $scope.updateInline = function(fctr, item, fieldName){

        var obj = {};
        obj[fieldName] = item[fieldName];
        obj['id'] = item.id;

        [fctr]update( {id:item.id}, obj, function (data) {

            if (!data.error) {
                notify({ messageTemplate: $scope.notifyMsg.UpS, classes: 'alert-success', duration: 3000});
            } else {
                notify({ messageTemplate: $scope.notifyMsg.UpE, classes: 'alert-danger', duration: 3000});
            }

        });

    };

在我的HTML中:

 <input type="text" ng-model="item.clientId" ng-ng-change="updateInline('Invites_Fctr',item, 'clientId')" />

如何将Invites_fctr从html传递到.update函数的[fctr]

[fctr] update(....)无效。我的语法不好。

我希望这很清楚。 谢谢

1 个答案:

答案 0 :(得分:0)

我不知道您为什么要这样做,但您可以尝试将工厂保存为范围属性:

var factories = {"Invites_Fctr": InvitesFactory, "List_Fctr": ListFactory}; //Assuming they are properly injected onto the controller.
$scope.updateInline = function (factoryName, item, fieldName) {
    var obj = {};
    obj[fieldName] = item[fieldName];
    obj['id'] = item.id;
    factories[factoryName].update({id: item.id}, obj, function (data) {
        if (!data.error) {
            notify({messageTemplate: $scope.notifyMsg.UpS, classes: 'alert-success', duration: 3000});
        } else {
            notify({messageTemplate: $scope.notifyMsg.UpE, classes: 'alert-danger', duration: 3000});
        }
    });
};