2015-09-14 19 views
1

這就是我所做的功能:在angularJS,將信息插入到功能特性

var _loadNieuws = 
    function (url) { 
     switch (url) { 
     case 'example1': 
      _nieuws = EXAMPLE1_NIEUWS; 
      break; 
     case 'example2': 
      _nieuws = EXAMPLE2_NIEUWS; 
      break; 
     } 
    } 

現在我想用我的控制器對URL的值,這是多遠我就來了:NieuwsService.loadNieuws.url = 'example1';

但後來我得到這個錯誤: 「無法設置未定義的屬性」網址「。

這是我的全廠:

App.factory('NieuwsService', ['EXAMPLE1_NIEUWS', 'EXAMPLE2_NIEUWS', function (EXAMPLE1_NIEUWS, EXAMPLE2_NIEUWS) { 
    var nieuwsService = {}; 

    var _nieuws = []; 

    var _loadNieuws = 
    function (url) { 
     switch (url) { 
     case 'example1': 
      _nieuws = EXAMPLE1_NIEUWS; 
      break; 
     case 'example2': 
      _nieuws = EXAMPLE2_NIEUWS; 
      break; 
     } 
    } 

    nieuwsService.loadNiews = _loadNieuws; 
    nieuwsService.nieuws = _nieuws; 

    return nieuwsService; 

}]); 

所以我的問題是我怎麼給資源網址在函數中使用我的控制器中的價值?

+0

沒有名爲NieuwsService或loadNieuws變量... 所以你有設置URL字段 – binariedMe

+0

我編輯的職位之前定義一個適當的對象.. – SjaakvBrabant

+0

嘗試類似:$ scope.url =「/ some/path」;然後像這樣調用控制器中的函數:NieuwsService.loadNiews(url); – binariedMe

回答

0

這是對我工作得很好的解決方案:

var url = 'example1'; 

$scope.url = angular.copy(NieuwsService.loadNieuws(url)); 
1

我認爲你需要像這樣在你的控制器:

$scope.url = NieuwsService.loadNieuws('example1'); 
1

在哪裏的問題?

如果你想變量傳遞到函數把它作爲一個參數功能:

<div ng-click="_loadNieuws(loadNieuws.url)">Click here</div> 

和你的js代碼將正常工作