我创造了一个角镖组件" 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属性与实例的属性绑定?
答案 0 :(得分:0)
您需要这些属性将自定义元素(组件)的HTML属性绑定到组件类的字段。
<body ng-app>
<my-component someattrib="somevalue"></my-component>
当MyComponent
班级有一个字段
@NgAttr('someattrib')
String someField;
然后'someField'将用'somevalue'初始化。
每个绑定只需要绑定到属性就不需要这样的属性。