Angular.js检测双向属性的存在
Angular.js detect presence of bi-directional attribute
这是自我解释的代码,请查看html部分的注释:
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/
也许还有更好的。
b
标记根本不显示,因为它上有ngShow,当customTarget为空字符串时,它的计算结果为false。
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 查找数组's按属性不存在于另一个数组中的对象
- 为什么没有从数组中存在的对象中删除属性
- 正在检查对象javascript中是否存在嵌套属性
- 正在检查属性的属性是否存在
- 为什么属性存在于对象实例上,即使其原型发生了更改
- 默认选中;为什么这个属性甚至存在
- HTML 中是否存在属性节点
- 错误 TS2339:类型“{}”上不存在属性“forEach”
- 如何获取数据属性中存在的现有JSON并更新它
- 类型错误: 无法读取未定义的属性“存在”
- _.assign 仅当属性存在于目标对象中时
- 当工具提示属性存在时更改引导弹出框标题
- 为什么 jquery 在我刷新时显示“禁用”属性存在
- 为什么 dom-elements 作为窗口对象的属性存在
- Qunit测试属性存在于对象中
- 未捕获的类型错误:不能读取属性-尽管属性存在
- 无法读取未定义的属性-但属性存在
- 如何添加名称已作为另一个属性存在的JSON项