2017-06-26 53 views
0

當本地存儲空間不存在時,我想顯示編輯/刪除按鈕。如果存在本地存儲變量,則啓用按鈕

在我view.html我嘗試:

<div ng-controller="MainController">  
    <button ng-disabled="localStorage.getItem('wimmtkey') !== null" > Edit</button> 
</div> 

然後在review.controller.js 我有這樣的功能:

function submit() { 
    if($rootScope.name!=null) { 
     var temp={ 
      "name":$rootScope.name, 
      "surname":$rootScope.surname, 
      "email":$rootScope.email 
     } 
     $scope.localArray.push(temp); 
     localStorageService.set("wimmtkey", $scope.localArray); 
     $scope.obtained_array = localStorageService.get("wimmtkey"); 

     var Results = UniversalService.PostReview(JSON.stringify(JSONObject)); 
     } 
    } 

,但即使我隱姓埋名按鈕顯示始終可見。它會是什麼問題?

+0

localStorage.hasOwnProperty( 'wimmtkey')是更好的初步實踐,無論如何。 – netoguimaraes

+0

您是否在隱身標籤中設置本地存儲?如果沒有,當您在設置後進入隱身模式時,會將其抹去。 – DavidR2106

回答

0

該按鈕將始終顯示,因爲您使用的是ngDisabled而不是ngShowngHidengIfngDisabled,當它評估爲true時,僅表示按鈕不可點擊。

正如我從條件中看到的,當wimmtkey項目存在於localStorage中時,該按鈕將被禁用。從你的描述來看,這似乎與你想要完成的事情完全相反。

此外,您是否將localStorage添加到$scope對象?您的代碼不會顯示此內容,如果它存在爲$scope.localStorage,則只能在視圖中使用它。如果沒有,條件永遠不會評估爲true(因爲它實際上會引發Angular沉默的錯誤),並且該按鈕不會被禁用。

0

您可以添加一個包裝爲localStorage.wimmtkey:

<div ng-controller="MainController">  
    <button ng-disabled="LS_wimmtkey!==null">Edit</button> 
</div> 


var MainController = function($scope) { 
    $scope.LS_wimmtkey = localStorage.getItem('wimmtkeys'); 

    $scope.$watch("LS_wimmtkey", function() { 
     localStorage.setItem('wimmtkeys', $scope.LS_wimmtkey); 
    }); 
}; 

在你的函數提交您必須使用$ scope屬性:

function submit() { 
    //your code is here 
    $scope.LS_wimmtkey = $scope.localArray; 
    //your code is here 
}