是@NgTwoWay中的参数(" param")真的有用吗?

时间:2014-10-18 16:35:04

标签: dart angular-dart

我创造了一个角镖组件" Range" a可以在表单中使用。 表格也是一个组件

在我的代码中,我通过表单中的组件绑定值返回但是在重命名之后它似乎是给@NgTwoWay(param)的参数,在我的情况下@NgTwoWay(" v1")是虽然没有做任何事情,但它仍然是强制性的。

这是我的代码:

my_form.dart

library my_form;
import "package:angular/angular.dart";

@Component(selector: "my-form", templateUrl: "my_form.html", exportExpressions: const ["submit"])
class DateFormComponent {

   @NgOneWay("random")
   bool random;

   @NgTwoWay("v1")
   String years = "eee";

   submit() {
      print(random);
      print(years);
   }

}

class DateFormModule extends Module {
   DateFormModule() {
      bind(DateFormComponent);
   }
}

my_form.html

<form>
   <range name="years" value="years"></range>
   <div>
      <label>Random:</label> <input type="checkbox" ng-model="random">
   </div>
   <div>
      <input type="submit" value="Go !" ng-click="submit()">
   </div>
</form>

range.dart

import "package:angular/angular.dart";

@Component(selector: "range", templateUrl: "range.html")
class RangeComponent {
   @NgAttr("name")
   String name;

   @NgTwoWay("value")
   String value;

   @NgOneWay("range_begin")
   String range_begin;

   @NgOneWay("range_end")
   String range_end;

   List<String> ranges = [];

   addRange() {
      ranges.add("$range_begin-$range_end");
      range_begin = "";
      range_end = "";
      value = ranges.reduce((begin, item) {
         return begin += ",$item";
      });
   }

   info() {
      print(range_begin);
      print(range_end);
      print(ranges);
      print(value);
   }

}

class RangeComponentModule extends Module {
   RangeComponentModule() {
      bind(RangeComponent);
   }
}

range.html

<div>
   <label>{{name}}:</label> <input type="text" placeholder="begin"
      size="8" ng-model="range_begin"> <input type="text"
      placeholder="end" size="8" ng-model="range_end"> <input
      type="submit" value="add" ng-click="addRange()"> <input
      type="submit" value="info" ng-click="info()">
</div>

我认为该参数必须将DOM属性与实例的属性绑定?

1 个答案:

答案 0 :(得分:0)

您需要这些属性将自定义元素(组件)的HTML属性绑定到组件类的字段。

<body ng-app>
  <my-component someattrib="somevalue"></my-component>

MyComponent班级有一个字段

@NgAttr('someattrib')
String someField;

然后'someField'将用'somevalue'初始化。

每个绑定只需要绑定到属性就不需要这样的属性。