2013-07-08 25 views
1

下面是自我解釋的代碼,請在HTML的一部分評論:Angular.js檢測雙向屬性的存在

HTML:

<div ng-app='myApp'> 
<div ng-controller="MCtrl"> 
    <!-- this should be "test:", OK --> 
    <test></test> 
    <br> 
    <!-- this should be "test: Hello world!", OK --> 
    <test custom-target="helloModel"></test> 
    <br> 
    <!-- this should be "test: Hello !", FAIL! --> 
    <test custom-target="emptyModel"></test> 
    <br> 
</diV> 
</div> 

JS:

var myApp = angular.module('myApp',[]); 

function MCtrl($scope) { 
    $scope.helloModel = 'world'; 
    $scope.emptyModel = ''; 
} 

myApp.directive('test', function() { 
    return { 
     restrict: 'E', 
     scope: { 
     customTarget: '=' 
     }, 
     template: '<span>test: <b ng-show="customTarget">Hello, {{customTarget}}!</b></span>' 
    }; 
}); 

http://jsfiddle.net/kMybm/34/

總之我需要屬性custom-target是可選的,並能夠檢測它何時缺失。

UPD:

目前發現此解決方案:

http://jsfiddle.net/kMybm/35/

也許有更好的一個。

回答

1

b第三個示例中的標記完全不顯示,因爲您已經獲得了ngShow,當customTarget爲空字符串時它的計算結果爲false。