AngularJS如何将作用域变量名作为函数参数传递?

6

你好,我还不太熟悉AngularJs,想知道这是否可能。

在我的控制器中,我试图创建一个函数,它需要一个字符串参数来指示调用哪个$http.get。然后我想在我的作用域中分配该参数。例如

$scope.getpartial = function(partialtype) {
    var promise = "";
    switch(partialtype) {
        case "account":
             promise = $http.get("account url here");
             break;
        case "contact":
             promise = $http.get("contact url here");
             break;
    }
    promise.then(function(payload) {
        $scope.XXXXXXX = payload.data;
    });
}

当XXXXXXX = partialtype == "account"或者"contact"时,结果将会被放置和存储在$scope.account和/或$scope.contact中。

这是否可行,或者有更好的方法实现?


这完全可行,尽管使用这种方法可能不是最佳实践,在我们的SPA中,这正是我们所需要的。我不知道如何将其标记为答案,因为这是一条评论。 - Justin
我发布了一个快速答案 - 在评论时我正在使用手机。 - tymeJV
2个回答

7

由于$scope只是一个带有属性的对象,您可以使用方括号表示法:

$scope[partialtype];

0

虽然这似乎是可能的,但我建议创建一个自定义的Angular服务来封装您的http请求逻辑。然后,您可以在控制器中包含您的服务,并访问您服务中的函数。

请查看Angular文档以了解如何创建自定义服务:Angular服务文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接