2015-02-06 39 views
1

我有這樣的方法:在REST配置不工作三元操作符PARAMS

getFolderDocuments: function(selectedFolder) { 
      if (!angular.isDefined(selectedFolder.selectedTag)) { 
       selectedFolder.selectedTag = {}; 
      } 
      if (!angular.isDefined(selectedFolder.docPage)) { 
       selectedFolder.docPage = 1; 
      } 
      if (!angular.isDefined(selectedFolder.pageLimit)) { 
       selectedFolder.pageLimit = 10; 
      } 
      var sort = "desc"; 
      if (selectedFolder.sortDesc == false) { 
       sort = "asc"; 
      } 

      var config = { 
       'params': { 
        filters: { 
         authorised: (angular.isDefined(selectedFolder.authorised) && selectedFolder.authorised ? true : false), 
         tag: (angular.isDefined(selectedFolder.selectedTag.id) ? selectedFolder.selectedTag.id : 0), 
         title: (angular.isDefined(selectedFolder.titleFilter) ? selectedFolder.titleFilter : ""), 
         start: ((angular.isDefined(selectedFolder.startFilter) && selectedFolder.startFilter != null) ? selectedFolder.startFilter.getTime() : 0), 
         end: ((angular.isDefined(selectedFolder.endFilter) && selectedFolder.endFilter != null) ? selectedFolder.endFilter.getTime() : 0)}, 
        sort: sort, 
        page: selectedFolder.docPage, 
        limit: selectedFolder.pageLimit} 
      }; 
      return $http.get(RESTServer.REST_URL+'/rest/mobile/folder/' + selectedFolder.id + "/document", config); 
     } 

據說這是爲了過濾的給出了具體參數,如標籤,標題,創建日期等文檔的列表...

問題在於,我一直在檢查控制檯中的值,並且三元運算符(例如,tag參數中)始終返回false值,即使定義了評估表達式中的元素。

我該如何解決這個問題? 在此先感謝。

回答

0

讓我們把你的標籤參數例如

(angular.isDefined(selectedFolder.selectedTag.id) ? selectedFolder.selectedTag.id : 0), 

這是正確返回,因爲沒有定義selectedFolder.selectedTag.id。

selectedFolder.selectedTag = {} 

沒有ID在那裏,除非你傳遞一個不同的對象的功能參數,我們無從得知。請清理你的問題。

+0

但它在方法參數中定義。只有當參數的selectedTag屬性未定義時,纔會發生這種情況。如果我檢入控制檯輸出,selectedTag.id返回一個值,config.params.filter.tag返回0 – 2015-02-06 19:36:35

+0

你傳遞給你的方法是什麼?你可能會傳遞一個空的對象{},我清楚你的問題。 – myartsev 2015-02-06 19:39:17

+0

我正在向$ scope.selectedFolder屬性中定義的值傳入方法。它永遠不會被定義。這是輸出的一個例子: console.log(selectedFolder.selectedTag.id)= 0,1,2,3 .... etc console.log(config.params.filters.tag)= 0 always – 2015-02-06 19:49:30