你能从 ngBind 表达式中获取 element.text() 吗?
Can you get element.text() from the from an ngBind expression?
我有一个很大的长哑指令使用ngBindTemplate
来完成此操作,但是如果我可以简单地访问表达式中的element.text()
,我基本上可以删除该指令。
问:如何从ngBind
表达式访问'element.text()'
?
<h1 ng-bind="worldMapCtrl.header.docs.intro || 'element.text()'">ABC</h1>
不要认为你能做到,对不起!
做了一个测试,无法访问它自己的元素。如果您这样做:
<h1 id="test" ng-bind="worldMapCtrl.header.docs.intro || this.$id">ABC</h1>
然后从控制台执行以下操作:
angular.element(document.getElementById('test')).scope()
并检查$id您会发现它们是相同的。此外,如果您这样做:
angular.element(document.getElementById('test'))
你会看到,即使ng-bind失败了,innerHTML也是空白的。
我做了一个不长的指令,解决了你想要的,如果你仍然想使用指令,让我知道这是否适合你。
(function(angular) {
'use strict';
angular.module('app', [])
.directive('dumbDirective', [function () {
return {
restrict: 'AE',
scope: {
htmlInput: '='
},
controller: SiteMenuController,
controllerAs: 'vm',
bindToController: true,
templateUrl: 'dumb-directive-template.html'
};
function SiteMenuController() {
this.text = angular.element(this.htmlInput).text();
}
}])
.run(['$templateCache', function($templateCache) {
$templateCache.put('dumb-directive-template.html',
'{{ vm.text }}'
);
}]);
})(window.angular);
指令用法:
// outputs just 'testing'
<dumb-directive html-input="'<span>testing</span>'"></dumb-directive>
相关文章:
- 如何将输入(type=text)从html表单传递到javascript函数
- jQuery:.click(function(){(element),collapse('show',f
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 在文本区域中使用jQuery.text()保持换行符
- Javascript - element.childNodes does not see an append.newch
- 用Javascript添加带有#text的tr元素
- 当用户按下回车键时,自动在text区域/text中插入消息
- 修正案'text'的元素
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 使用element简化onclick函数
- 你能从 ngBind 表达式中获取 element.text() 吗?
- jQuery: $(element).text() 不起作用
- 在Javascript中将Text NodeType转换为Element
- inner text of element passed as <span onclick=foo(this) &
- 不能在元素上创建checkboxradio.nodeName=input, element.type=text
- Superscript text in <title></title> element
- 如何使用Element将value设置为“text”.属性名称IE浏览器
- HTML: Text in block-element;获得点击的确切位置
- remove a specific text from <td> element