AngularJS将范围变量名称作为函数参数传递

时间:2014-12-29 22:28:08

标签: javascript angularjs-scope

您好我还是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"或"联系"

所以结果将被放置并存储在$ scope.account和/或$ scope.contact下。

这可能或有更好的方法吗?

2 个答案:

答案 0 :(得分:7)

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

$scope[partialtype];

答案 1 :(得分:0)

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

在此处查看用于创建自定义服务的Angular文档:Angular Documentation for Services