Dart 聚合物镖芯样式参考未解析
当我将参数传递给聚合物元素时,核心样式ref不会得到解析 以下是子代码:Dart 聚合物镖芯样式参考未解析,dart,polymer,dart-polymer,Dart,Polymer,Dart Polymer,当我将参数传递给聚合物元素时,核心样式ref不会得到解析 以下是子代码: <link rel="import" href="packages/polymer/polymer.html"> <link rel="import" href="packages/core_elements/core_style.html"> <core-style id="s1" unresolved> div { background: yellow; } </core-s
<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="packages/core_elements/core_style.html">
<core-style id="s1" unresolved> div { background: yellow; } </core-style>
<core-style id="s2" unresolved> div { background: pink; } </core-style>
<polymer-element name='test-cell' attributes='s t' noscript>
<template>
<core-style ref="{{s}}"></core-style>
<div>{{t}}</div>
</template>
</polymer-element>
并且不应用样式。我可以通过一些替代注释强制解析style ref参数吗?它本质上是一个最终/常量。更新
我认为问题在于测试单元元素中的noscript。
据我所知,如果没有支持脚本noscript,绑定在带有聚合元素的Dart中不起作用
我认为在你的例子中,元素需要一个字段
@可观察
var s;
让这一切顺利进行
起初的
你的代码不会显示你是否给s赋值
我怀疑在普通的飞镖物体上能观察到什么。据我所知,这是用于列表和地图的
Info类应该是这样的,您不需要使用toObservable
类信息扩展了对象的可观察性{
@可观察
字符串s;
@可观察
字符串t;
Infothis.s,this.t{}
}
谢谢你的迅速回复。关于您的第一条评论,通过Dart速记this.s为s分配了一个值。遗憾的是,你的建议不起作用。令人惊讶的是,{{v.t}}被正确地提取出来,t的值出现在div中。如果我将{s}添加到div中,{v.s}也被正确地提取出来,s的值出现在div中。但是不管我怎么做,包括你的建议,ref都被分配了字符串{v.s}没有计算/插值。很抱歉,我在解释代码时遇到了一些问题。我不习惯内联Dart脚本,目前我自己也在与相当困难的问题作斗争;-。我想我现在明白你的代码了。为了支持问题中的代码,您根本不需要任何可观察的东西@仅当模型在视图初始绑定后发生更改时,才需要“可观察”来更新视图。我再看一看……你说得对,添加脚本会有所不同。正如你所建议的,我必须加上可观测值,再加上t的可观测值。遗憾的是,车把仍然没有计算,我仍然得到ref={{s}。您知道是否有任何方法可以获取表达式的当前计算值吗?我还尝试给软件一个提示,将class Info定义改为final String s,但没有成功。有没有可能让属性更改为内部变量,检测变量中的更改,并最终更新ref?我的大脑拒绝处理这样一个问题,在这样一天之后,现在是18:30。您可以尝试使用@PublishedPropertyreflect:true而不是@observable,以使属性值不仅在DOM内部可用。明天我可以更仔细地看一看。通过“attached”回调修复属性将正确的值放入“ref”中。但没有效果。我看不到强制绑定重新计算的方法。您可以通过jsInterop挖掘核心样式上下文['CoreStyle']['list'][s],提取cssText字符串并将其作为样式应用,从而获得效果。但是生命还不够长-
<polymer-element name='test-rows'>
<template>
<template repeat='{{ v in x }}'>
<test-cell s={{v.s}} t={{v.t}}></test-cell>
</template>
</template>
</polymer-element>
<script type='application/dart'>
import 'package:polymer/polymer.dart';
//======================================
class Info {
String s, t;
Info(this.s, this.t) {}
}
//======================================
@CustomTag('test-rows')
class TestRows extends PolymerElement {
@observable List<Info> x = toObservable([]);
//-----------------------------------
TestRows.created() : super.created() {
x.add(toObservable(new Info('s1', 'first' )));
x.add(toObservable(new Info('s2', 'second')));
}
}
</script>
ref="{{s}}"