2013-12-09 37 views

Trả lời

28

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

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

Dưới đây là một demo trong jsFiddle.

Hy vọng điều này hữu ích.

+0

Tôi vượt qua đối tượng thông qua chỉ thị (với '=') và trong bộ điều khiển chỉ thị của tôi tôi có đoạn mã này để khởi tạo nhưng tôi nhận được TypeError: Không thể gọi phương thức 'hasOwnProperty' của undefined. bạn có biết tại sao? –

+0

@ user2985439: Có vẻ như đối tượng của bạn không có thuộc tính 'test'. –

+0

@ user2985439 Như Felix Kling đã đề cập, đối tượng mà chỉ thị của bạn được tham chiếu không có thuộc tính 'thử nghiệm'. Bạn có thể cập nhật câu hỏi của mình để biết thêm chi tiết không? Phạm vi – Chickenrice

1

Vấn đề là bạn có thể sẽ có giá trị không chỉ khi liên kết Chỉ thị của bạn - nó có thể được nạp bởi $ http ví dụ.

Lời khuyên của tôi sẽ là:

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 
    }); 
} 

hoặc nếu bạn biết rằng giá trị được gán chỉ có một:

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(); 
    }); 
} 

Mã này sẽ loại bỏ sát giá trị của 'test.hello' được giao nhiệm vụ (từ bất kỳ bộ điều khiển, ajax, v.v ...)

Các vấn đề liên quan