- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在 Aurelia 中编写一个非常简单的数据网格自定义元素,部分是为了我需要的功能,部分是为了学习 Aurelia。一切顺利,但我一直在研究如何获取自定义组件中元素的内容。
这是我的代码,问题的其余部分如下:
数据网格.js
import {inject, bindable} from 'aurelia-framework';
import _ from 'underscore';
export class DataGridCustomElement {
@bindable data = [];
@bindable height = '';
columns = [];
bind() {
this.sort(this.columns[0].property);
}
sort(property) {
if (property == this.sortProperty) {
this.sortDirection = !this.sortDirection;
}
else {
this.sortProperty = property;
this.sortDirection = true;
}
let data = _.sortBy(this.data, this.sortProperty);
if (!this.sortDirection) {
data = data.reverse()
}
this.data = data;
}
}
@inject(DataGridCustomElement)
export class DataGridColumnCustomElement {
@bindable title = '';
@bindable width = '';
@bindable property = '';
constructor(dataGrid) {
dataGrid.columns.push(this);
}
}
数据网格.html
<template>
<table class="table table-fixedheader table-condensed table-striped table-bordered">
<thead>
<tr>
<th repeat.for="column of columns" width="${column.width}"><a href="#" click.delegate="sort(column.property)">${column.title}</a></th>
</tr>
</thead>
<tbody css="height: ${height};">
<tr repeat.for="row of data">
<td repeat.for="column of columns" width="${column.width}"></td>
</tr>
</tbody>
</table>
</template>
数据网格测试.js
import {inject} from 'aurelia-framework';
export class DataGridTest {
constructor() {
this.animals = [
{
id : 3,
animal : 'Horse',
home : 'Stall'
},
{
id : 1,
animal : 'Monkey',
home : 'Tree'
},
{
id : 11,
animal : 'Dog',
home : 'House'
},
{
id : 2,
animal : 'Cat',
home : 'Internet'
},
{
id : 20,
animal : 'Hamster',
home : 'Cage'
},
];
}
}
数据网格测试.html
<template>
<require from="./data-grid"></require>
<data-grid data.bind="animals" height="300px">
<data-grid-column title="ID" property="id" width="34%">TEXT CONTENT</data-grid-column>
<data-grid-column title="Animal" property="animal" width="33%">TEXT CONTENT</data-grid-column>
<data-grid-column title="Home" property="home" width="33%">TEXT CONTENT</data-grid-column>
</data-grid>
</template>
在这段代码中,我想做的是绑定(bind) TEXT CONTENT
的 <data-grid-column>
data-grid.js#DataGridColumnCustomElement
中字段的元素.与一切正常的 title、property 和 width 属性类似,我想要元素的文本内容。
似乎我需要在类上定义一些东西才能发生这种情况,但我不知道要定义什么或在哪里看。
提前致谢
杰森
最佳答案
您需要获取对列的 DOM 元素的引用,以便获取文本内容。以下是如何做到这一点,以及其他一些调整:
import {processContent, noView} from 'aurelia-framework';
@noView() // this element doesn't need a view, it's essentially declarative data for the parent element
@processContent(false) // the templating engine doesn't need to process the content of this element, we're going to do it
@inject(DataGridCustomElement, Element) // inject the parent, and the DOM element that represents this DataGridColumn element so we can read it's textContent
export class DataGridColumnCustomElement {
@bindable title = '';
@bindable width = '';
@bindable property = '';
textContent = '';
constructor(dataGrid, element) {
this.textContent = element.textContent; // grab the textContent and store it in a class property
dataGrid.columns.push(this);
}
}
关于javascript - Aurelia:绑定(bind)自定义元素的 textContent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35027737/
我想我在这里遗漏了一些明显流血的东西,如果有任何帮助,我将不胜感激。提前致谢。 我有以下代码,但是当我运行它时它中断并说 .textContent 不能应用于 queryString 因为 query
我有一个这样的html: My title Here is a text and one paragraph Another paragraph
我的磁盘上有一个 xml 文件,其中包含: _gos='monster.gostats.com';_goa=458628; _got=5;_goi
这个问题已经有答案了: JavaScript closure inside loops – simple practical example (45 个回答) 已关闭 4 年前。 我正在尝试 menu
我有一个表,我想在其中提取事件项目的文本。我使用以下代码执行此操作: var addedWorkout = $("#custDropDownMenuA").find(".dropdown-it
这是我的代码: var text1 = "↵,bla bla";//here text1 has value text1 = text1.textContent;//here it is undefi
我正在尝试创建动画 Logo 灵感:http://codepen.io/pavlunya/pen/OPmVem 当我使用 document.getElementById 而不是 document.ge
var container = document.getElementById("grid-container"); var btn = document.getElementById("btn");
我正在尝试获取出现在父 div 标签上方的 h3 标签的 textContent。代码重复,添加 id 不是 h3 标签的选项。希望在纯 Javascript 中做到这一点。我的 html 目前是..
首先,我正在为 JavaScript 创建一个库,但我不能使用 jQuery。我正在尝试获取 HTML 元素的文本内容,但不包含其子元素的文本内容。 属性 innerText 和 textConten
我正在执行 element.textContent = unescapedData 以将未转义的用户输入放在网站上。攻击者有什么办法可以利用它来做坏事吗?如果它有以下 CSS 吗? max-width
我想使用 JavaScript 设置元素的文本内容。如果我这样做: var el = document.getElementById('my-element') el.textContent = '&
下面是我尝试用来从填充有多个 元素的元素内部获取日期的 JavaScript 代码。第 9 个元素包含 YYYY-MM-DD 格式的日期。当我使用这段代码时,它似乎没有将元素转换为 JavaScrip
我想使用一个使用 JavaScript 的脚本来更新网站页脚中的元素。但是,h3 元素没有更新。 我已经尝试过textContent not updating HTML ,但我无法在那里找到我的解决方
我最近在玩耍,注意到一些涉及 .textContent 的奇怪行为属性(property)。 // I understand that .innerHTML should be used here.
我不知道为什么会这样,但我的替换不起作用。考虑到我的语法是正确的,这有点不寻常。 info.textContent.replace('Title', "replaced"); 其中 info 是存储元
需要: 当按钮的 textContent 溢出它的按钮宽度时,我需要一个触发器。 问题: 是否有任何简洁/巧妙的方法来检测 textContent 何时溢出其父项? Codepen Example 更
早上好, 我希望有人能帮我解决这个看似简单的问题。我不明白为什么我的 textContent 或 innerHTML 不会更新我的 DOM。它在我的控制台中显示它已经改变,但由于某种原因我无法理解为什
我向 mozilla 目录提交了一个 Firefox 插件,但由于以下原因被拒绝: item.innerHTML = '' + ''
给定 firstsecond 和 span + span::before { content: ', '; } 我想在 JavaScript 中检索渲染的字符串 'first, secondary
我是一名优秀的程序员,十分优秀!