如何将参数作为方法传递

时间:2014-08-08 11:06:16

标签: javascript angularjs function

我正在尝试创建一个带有$ scope的函数,并使用方法' telegraph'将其附加。问题是,$ scope采用方法"标记"不用参数替换它。 因此,而不是阅读" $ scope.telegraph"它以" $ scope.tag"

运行
function httpRequest(url,tag){
  $http({
  method: 'JSONP',
  url: "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q="+url+"&callback=JSON_CALLBACK"

    }).success(function(data, status, headers, config) {
      // data contains the response
      $scope.tag = data.responseData.feed.entries;
      console.log(tag);

    }).error(function(data, status, headers, config) {
      });
 }

httpRequest('http://www.telegraph.co.uk/news/uknews/rss','telegraph');{}

2 个答案:

答案 0 :(得分:0)

好吧,我想,您想要将$ scope.telegraph(例如标签)的值设置为您从通话中获得的响应;它应该是这样的:

$scope[tag] = data.responseData.feed.entries;

答案 1 :(得分:0)

在JavaScript中,someObj.someProp相当于someObj['someProp'](即访问该媒体资源) someProp引用的对象的someObj


在您的情况下,$scope.tag相当于$scope['tag'],即访问名为tag的属性(这不是您想要的)。

您需要使用数组表示法:

$scope[tag] = data.responseData.feed.entries;

<子> 这会将tag用作变量(保持字符串telegraph),将用作字符串tag
因此它相当于$scope[tag] --> $scope['telegraph'] --> $scope.telegraph