Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 聚合物镖芯样式参考未解析_Dart_Polymer_Dart Polymer - Fatal编程技术网

Dart 聚合物镖芯样式参考未解析

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

当我将参数传递给聚合物元素时,核心样式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-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}}"