2013-12-09 107 views
17

如何檢查一個對象在AngularJS中是否有某個屬性?檢查一個對象是否有屬性

+0

如果您不知道屬性的名稱,那麼您可以簡單地檢查Object.keys(objName).length。我希望這有幫助。 –

回答

28

You could use 'hasOwnProperty' to check if object have the specific property.

if($scope.test.hasOwnProperty('bye')){ 
    // do this 
}else{ 
    // do this then 
} 

下面是一個的jsfiddle demo

希望這有用。

+0

我通過指令傳遞對象(使用'='),並且在我的指令控制器中我有這段代碼片段用於初始化,但是我得到了TypeError:無法調用未定義的方法'hasOwnProperty'。你知道爲什麼嗎? –

+0

@ user2985439:聽起來你的對象沒有'test'屬性。 –

+0

@ user2985439正如Felix Kling所提到的,您的指令引用的對象不具有「測試」屬性。你能否更新你的問題了解更多細節? – Chickenrice

1

的問題是,您將您的指令,不只是當將可能有值 - 它可以通過HTTP $例如加載。

我的建議是:

controller: function($scope) { 
    $scope.$watch('test.hello', function(nv){ 
    if (!nv) return; 
    // nv has the value of test.hello. You can do whatever you want and this code 
    // would be called each time value of 'hello' change 
    }); 
} 

,或者如果你知道值賦給只有一個:

controller: function($scope) { 
    var removeWatcher = $scope.$watch('test.hello', function(nv){ 
    if (!nv) return; 
    // nv has the value of test.hello. You can do whatever you want 
    removeWatcher(); 
    }); 
} 

此代碼將刪除守望分配「test.hello」的價值(來自任何控制器,ajax等)

相關問題