Dart 如何从组件中检索值

Dart 如何从组件中检索值,dart,angular-dart,Dart,Angular Dart,我已经创建了一个表单组件。在这个表单组件中,我还有一个范围组件。 我想知道如何从范围组件中检索我的值,更一般地说,如何从范围组件之外与组件交互。即使目标是封装东西 我不知道某处是否有类似的组件,但现在我只想了解它是如何工作的。谢谢 这是我的密码 index.html 数据发生器前端 索引.省道 导入包:angular/angular.dart; 进口包装:angular/application_factory.dart; 导入包:数据\u生成器\u前端/组件/my\u form.dart; 导入

我已经创建了一个表单组件。在这个表单组件中,我还有一个范围组件。 我想知道如何从范围组件中检索我的值,更一般地说,如何从范围组件之外与组件交互。即使目标是封装东西 我不知道某处是否有类似的组件,但现在我只想了解它是如何工作的。谢谢

这是我的密码

index.html

数据发生器前端 索引.省道

导入包:angular/angular.dart; 进口包装:angular/application_factory.dart; 导入包:数据\u生成器\u前端/组件/my\u form.dart; 导入包:数据\生成器\前端/组件/范围.dart; @注射的 类根上下文{ 字符串myProperty=jeahhhhh; 无效方法1{ 打印方法1; } } 主要{ 应用工厂 .rootContextTypeRootContext .AddModuleNewDateFormModule .addModulenew Range组件模块 跑 } my_form.html

随机: 我的飞镖

图书馆我的表格; 导入包:angular/angular.dart; @Componentselector:my form,templateUrl:my_form.html,exportExpressions:const[submit] 类DateFormComponent{ @NgOneWayrandom 布尔随机; 提交{ 你好; } } 类DateFormModule扩展模块{ DateFormModule{ bindDateFormComponent; } } 射程

导入包:angular/angular.dart; @Componentselector:range,templateUrl:range.html 类范围组件{ @Ngatrname 字符串名; @NgOneWayrange\u开始 字符串范围\u开始; @NgOneWayrange_end 字符串范围_结束; 列表范围=[]; addRange{ 范围。添加$range\u begin-$range\u end; 范围_begin=; 范围_end=; } 信息{ 开始打印范围; 打印范围(完); 打印范围; printranges.reducebegin,项目{ 返回开始+=,$item; }; } } 类RangeComponentModule扩展模块{ 范围组件模块{ 结合剂组分; } } range.html

{{name}}: 我想将NgOneWay更改为NgTwoWay应该可以做到这一点,以便在组件内部更新值。获取组件绑定之外的值的步骤

并在“我的表单”组件中创建一个字段

@NgTwoWay'myProp' var-myProp;
或者,您可以实现ScopeAware来获取范围,然后使用scope.emit、scope.broadcast、scope.on。。。在提交时以事件的形式发送数据通过DOM发送数据不仅仅是直接发送给直接的父/子对象

我在my_form.dart中初始化属性,然后my_form.html绑定了该值,最后range组件可以在初始化时使用该值

但当我更改组件内部的代码时,该值就不再使用my_form.dart绑定

这是密码

range.html没有改变

我的飞镖

图书馆我的表格; 导入包:angular/angular.dart; @Componentselector:my form,templateUrl:my_form.html,exportExpressions:const[submit] 类DateFormComponent{ @NgOneWayrandom 布尔随机; @NgTwoWayv1 字符串v1=eee; 提交{ 打印随机; printv1; } } 类DateFormModule扩展模块{ DateFormModule{ bindDateFormComponent; } } my_form.html

随机: 射程

导入包:angular/angular.dart; @Componentselector:range,templateUrl:range.html 类范围组件{ @Ngatrname 字符串名; @恩加特值 字符串值; @NgOneWayrange\u开始 字符串范围\u开始; @NgOneWayrange_end 字符串范围_结束; 列表范围=[]; addRange{ 范围。添加$range\u begin-$range\u end; 范围_begin=; 范围_end=; 值=范围。还原项,项目{ 返回开始+=,$item; }; } 信息{ 开始打印范围; 打印范围(完); 打印范围; 印刷价值; } } 类RangeComponentModule扩展模块{ 范围组件模块{ 结合剂组分; } }
感谢您的帮助:

@NgAttrvalue字符串值;应该是@NgTwoWay@NgAttr只是绑定文本值。通过像您所说的那样进行更改,我有一个异常:解析器错误:意外的标记{,预期的标识符,关键字,或[{{v1}}]中第2列的字符串,但没有它工作的{{}。我认为{{}需要有绑定吗?好的,我刚才看到了atNgAttr、atNgOneWay和atNgTwoWay绑定实例属性,具有DOM属性…酷的thx:@NgAttr表示文字值,{{}}表示表达式。