Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
如何访问组件外部的AngularDart组件属性(NgOneWay),例如在其所在的页面上?_Dart_Angular Dart - Fatal编程技术网

如何访问组件外部的AngularDart组件属性(NgOneWay),例如在其所在的页面上?

如何访问组件外部的AngularDart组件属性(NgOneWay),例如在其所在的页面上?,dart,angular-dart,Dart,Angular Dart,这是页面中的AngularDart组件 <body> <testcomponent></testcomponent> <p>Should have value {{testcomponent.test}}</p> </body> 这不起作用,因为页面上未显示任何值。该组件可以在组件HTML中显示其NgOneWay,但我希望在使用该组件的页面上的组件HTML之外访问它 有没有办法在使用组件的页面上显示组件NgOneWay

这是页面中的AngularDart组件

<body>
<testcomponent></testcomponent>
  <p>Should have value {{testcomponent.test}}</p>
</body>
这不起作用,因为页面上未显示任何值。该组件可以在组件HTML中显示其NgOneWay,但我希望在使用该组件的页面上的组件HTML之外访问它

有没有办法在使用组件的页面上显示组件NgOneWay

这是我的测试代码。

我正在使用Dart 1.5.1



好的,我理解这不是一个好的实践,它在使用组件的页面和组件本身之间创建了依赖性。我遇到的问题是,我使用的一些javascript在组件中不起作用,这是另一个问题。。。我不应该在这里解释,但我尝试只使用视图而不使用组件,因为我的js在视图中工作,但不在组件中工作。

简而言之:不,您不能在组件外部获取属性,因为组件不适合这样做

在Angular Dart中,组件需要被视为一个黑匣子,您可以像lego一样编写它来创建结构化应用程序。 你不能在别的地方使用乐高积木的一部分

为您提供信息,
NgOneWay
NgAttr
NgTwoWay
在这里作为HTML属性与您的组件交互

举个小例子:

<body>
<testcomponent test="Hi friend"></testcomponent>
</body>

但是您可以在组件内部获取属性

testcomponent.html


应具有值{{testcomponent.test}

如果你真的想得到你想要的行为,你需要使用


注意:如果需要,可以通过添加静态值来欺骗。但这不是一个好方法,简而言之:不,您不能在组件外部获取属性,因为组件不是用来这样做的

在Angular Dart中,组件需要被视为一个黑匣子,您可以像lego一样编写它来创建结构化应用程序。 你不能在别的地方使用乐高积木的一部分

为您提供信息,
NgOneWay
NgAttr
NgTwoWay
在这里作为HTML属性与您的组件交互

举个小例子:

<body>
<testcomponent test="Hi friend"></testcomponent>
</body>

但是您可以在组件内部获取属性

testcomponent.html


应具有值{{testcomponent.test}

如果你真的想得到你想要的行为,你需要使用


注意:如果需要,可以通过添加静态值来欺骗。但这不是一个好方法,简而言之:不,您不能在组件外部获取属性,因为组件不是用来这样做的

在Angular Dart中,组件需要被视为一个黑匣子,您可以像lego一样编写它来创建结构化应用程序。 你不能在别的地方使用乐高积木的一部分

为您提供信息,
NgOneWay
NgAttr
NgTwoWay
在这里作为HTML属性与您的组件交互

举个小例子:

<body>
<testcomponent test="Hi friend"></testcomponent>
</body>

但是您可以在组件内部获取属性

testcomponent.html


应具有值{{testcomponent.test}

如果你真的想得到你想要的行为,你需要使用


注意:如果需要,可以通过添加静态值来欺骗。但这不是一个好方法,简而言之:不,您不能在组件外部获取属性,因为组件不是用来这样做的

在Angular Dart中,组件需要被视为一个黑匣子,您可以像lego一样编写它来创建结构化应用程序。 你不能在别的地方使用乐高积木的一部分

为您提供信息,
NgOneWay
NgAttr
NgTwoWay
在这里作为HTML属性与您的组件交互

举个小例子:

<body>
<testcomponent test="Hi friend"></testcomponent>
</body>

但是您可以在组件内部获取属性

testcomponent.html


应具有值{{testcomponent.test}

如果你真的想得到你想要的行为,你需要使用


注意:如果需要,可以通过添加静态值来欺骗。但这不是一个好方法

我发现处理这种情况的最好方法是在组件上映射一个值更改处理程序。在您的例子中,您需要映射一个
on test change
属性


应具有值{ctrl.testValue}}

testChangeHandler
方法可能是一个接受字符串的函数<每当更新测试值时,code>testcomponent将在测试更改时调用
处理程序。然后,父组件将在处理程序中设置
testValue
。正如在另一个答案中提到的,这需要一个父组件


这个解决方案的好处在于它使组件完全解耦,这总是一件好事

我发现处理这种情况的最好方法是在组件上映射一个值更改处理程序。在您的例子中,您需要映射一个
on test change
属性


应具有值{ctrl.testValue}}

testChangeHandler
方法可能是一个接受字符串的函数<每当更新测试值时,code>testcomponent
将在测试更改时调用
处理程序。然后,父组件将在处理程序中设置
testValue
。正如在另一个答案中提到的,这需要一个父组件


这个解决方案的好处在于它使组件完全解耦,这总是一件好事

我发现处理这种情况的最好方法是在组件上映射一个值更改处理程序。在您的例子中,您需要映射一个
on test change
属性


应具有值{ctrl.testValue}}

testChangeHandler