问题标签 [aurelia-templating]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
aurelia - Aurelia TypeError: this.sourceExpression.connect is not a function
I have encountered runtime error:
TypeError: this.sourceExpression.connect is not a function
Problem is that stacktrace does not show anything useful, it points (randomly) to the last line of one of bundled components (in this case Leaflet's MarkerClusterGroup):
Uncaught TypeError: this.sourceExpression.connect is not a function at ChildInterpolationBinding.connect (MarkerClusterGroup.Refresh.js:110) at enqueueBindingConnect (MarkerClusterGroup.Refresh.js:110) at ChildInterpolationBinding.bind (MarkerClusterGroup.Refresh.js:110) at View.bind (MarkerClusterGroup.Refresh.js:110) at If._show (MarkerClusterGroup.Refresh.js:110) at If._update (MarkerClusterGroup.Refresh.js:110) at If.conditionChanged (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.selfSubscriber (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.call (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.setValue (MarkerClusterGroup.Refresh.js:110) at If.descriptor.set [as condition] (MarkerClusterGroup.Refresh.js:110) at Object.setValue (MarkerClusterGroup.Refresh.js:110) at Binding.updateTarget (MarkerClusterGroup.Refresh.js:110) at Binding.call (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.callSubscribers (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.call (MarkerClusterGroup.Refresh.js:110)
aurelia - 将焦点集中到 Aurelia 组件的最佳“解耦”方式是什么?
假设我已经构建了某种 Aurelia 组件。对于此示例,假设我构建了一个名为 ui-money 的假设组件。
假设 ui-money 组件包含一个文本输入元素,以及显示汇率的输入旁边的另一个元素(例如 span)。本质上,类似于:
然后我构建了一个包含 <ui-money> 元素的 Aurelia 视图(页面)。
我的问题是这样的:假设我想把重点放在“ui-money”元素上。
实际上,我不想知道 ui-money 元素的内部构成(白盒知识),也不应该想要。但显然我需要将焦点转到 ui-money 元素内的 INPUT 元素。
所以,对我来说,似乎我需要让 ui-money 元素执行设置焦点的行为。
现在最明显的第一个选项是为 ui-money 元素提供一个引用,<ui-money ref="purchasePriceUx">
并让 ui-money 视图模型公开某种takeFocus()
方法。然后我们可以调用
purchasePriceUx.takeFocus()
.
但我很想知道是否有更好的方法来实现这一点,同时仍保持相同水平的解耦。
aurelia - 如何使用转发器手动编译的模板?
我正在为 LOB 样式的 Aurelia 应用程序构建自定义数据网格框架,并且需要有关如何对主网格元素进行模板化的帮助,以便它可以从子列元素中获取自定义单元格模板进行渲染。
这是我到目前为止所做的:
网格示例.html
数据列.ts
数据-grid.html
数据网格.ts
data-column
元素声明了一个单元格模板,该单元格模板被手动解析为一个实例ViewFactory
- 我坚持的是如何为模板中相应td
转发器中的每个数据列使用单元格模板data-grid
,所以它的行为就像我直接声明了模板内容在那里。
这可能与默认repeat.for
语法有关吗?还是我需要一个自定义模板控制器来执行此操作,它还可以接受 ViewFactory 实例作为范围内的可绑定参数?
如果有更好的方法来实现这一要求,那么我也对此持开放态度。
aurelia - Aurelia 组合,使用具有相同视图的不同视图模型
我有一个案例,我想为一组不同的视图模型使用特定的模板文件,例如 template-file.html。
为了确定要与视图一起加载的视图模型,我使用了 JSON 配置文件。
我有以下示例:main-page.ts:
使用以下模板:
现在我想在这里实现的是,基于配置中的模型属性加载不同的打字稿类,但始终使用相同的 HTML 模板文件。但是,现在它给我的错误是它找不到相应的视图。
在线搜索只给了我可以仅使用视图进行组合的用例,但我还没有找到允许您为不同视图模型指定单个模板 html 文件的示例或解决方案。
这甚至可能吗?如果是这样,compose 元素是否适合这项工作?
任何帮助深表感谢。
问候, Jan Jaap
aurelia - 当字符串包含引用字符的 HTML 实体时,Aurelia 模板解析错误
当我尝试从模板向 Aurelia 提供字符串并且该字符串包含表示与字符串周围的引用字符相同的引用字符的 HTML 实体时,我收到解析器错误。显然,HTML 实体在到达 Aurelia 之前已被解释,但我不确定。
例如:
结果是
有人能告诉我为什么实体被解释而不是仅仅输出到 DOM 吗?我该怎么做才能让它发挥作用?
aurelia - Aurelia - 在视图模型中动态创建自定义元素
我有一个 Aurelia 应用程序,用户可以在其中单击一个按钮并创建一个新选项卡。在用户单击按钮之前,该选项卡及其内容(自定义元素)在页面上不存在。我在我的视图模型中在运行时(通过 Javascript)为内容生成 HTML。
我不断看到提到使用模板引擎compose
或enhance
功能,但它们都不适合我。我不知道如何使用该<compose>
元素(在我的 HTML 中),因为我是根据用户单击按钮来创建元素的。
我的想法是该按钮具有click.delegate
最终执行类似功能的功能
但这所做的只是创建一个 HTML 元素<custom-element></custom-element>
,而没有实际绑定任何属性。
如何创建类似于<custom-element attr-one.bind="foo" attr-two.bind="bar"></custom-element>
但通过 Javascript 的自定义元素?
typescript - Aurelia - 如何在 View/ViewSlot 中获取动态创建的自定义元素的实例
所以我找到了如何使用下面显示的代码通过视图/视图槽动态构建和创建 Aurelia 自定义元素,但是,我不知道如何获取它的实例(我找到了一种方法,但它很难看)
这是我必须动态创建自定义元素的 util 服务
然后我这样称呼它,我的自定义元素呈现在屏幕上,是的
但是现在我想要并且需要修改该自定义元素的一些属性,我怎样才能获得它的实例?通过在控制台中记录对象,我有点通过深入(真的很深)找到了实例,但它很难看,所以必须有更好的方法!?
这是我找到实例的深潜丑陋方式
所以是的,它有效,但必须有更好的方法......对吗?
aurelia - Aurelia:EventAggregator 触发两次
订阅函数调用的函数触发两次。
发布者不是在激活或附加函数中使用,而是在不同类的异步函数中使用。两个类都通过绑定接收相同的 EventAggregator。Console.Trace() 在这两种情况下都有相同的路由。发布/订阅集是唯一的,不被任何其他类使用。
internationalization - 如何将值绑定到 Aurelia 中的 TCustomAttribute?
我正在尝试实现以下结果:我有一组来自数组的值,我对其进行迭代以填充 HTML 表。我还有一个图标,用户可以悬停在上面,可以看到来自数组的数据和来自翻译文件的翻译键。
我想将第二个参数绑定到 TCustomAttribute,以便向用户显示他们编辑的另一个数据。
我如何在 Aurelia 中实现这一目标?