1
我已經創建了一個角度飛鏢組件「範圍」,可以在窗體中使用。 該表單還是一個組件是@NgTwoWay(「param」)中的參數是否真的做了些什麼?
在我的代碼中,我通過窗體中的組件綁定了值返回,但是在重命名之後它好像給@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屬性與一個實例的屬性?
我明白現在,但事情是在我的代碼中沒有「v1」DOM屬性了,它仍然工作! – BenNG 2014-10-19 12:21:39
我不明白你的意思是「它還在工作」。當沒有'v1' DOM屬性時,'years'字段不可能從分配給它的'v1' DOM屬性獲得值,可以嗎? – 2014-10-19 12:25:54
我想說的是:我可以用@NgTwoWay替換@NgTwoWay(「v1」)(「whatEverTheValue」)並且它仍在工作 – BenNG 2014-10-19 16:03:51