" NG-真值"和" ng-false-value" Angular2中的替代品

时间:2016-06-09 11:00:18

标签: angularjs angular

我在ng-true-value中搜索了ng-false-valueAngular 2替代品,但我没有得到结果。他们用其他工具取代了吗?我真的需要它们。提前致谢

3 个答案:

答案 0 :(得分:0)

解决方法。例如,我们有'对象'在带有标记的模型中#39;并且一个复选框应该将标志设置为值" 1"另一个复选框应该将标志设置为值" 2",如果复选框都未选中,则值应为" 0",所以:



public setFlag(object: any, event: any): any {
  if (event.target.classList.contains('some-mark-class') && (object.flag == 0 || object.flag == 1)) {
    object.flag = 2;
  } else if (!event.target.classList.contains('some-mark-class') && (object.flag == 0 || object.flag == 2)) {
    object.flag = 1;
  } else {
    object.flag = 0;
  }
}

<input type="checkbox" name="hide-{{object.flag}}" [checked]="object.flag === 1" (change)="setFlag(object, $event)">
<input type="checkbox" name="dlte-{{object.flag}}" [checked]="object.flag === 2" (change)="setFlag(object, $event)" class="some-mark-class">
&#13;
&#13;
&#13;

解决方案可能并不完美,而且有些笨拙,但它有效并且有效,所以如果你有一些改进,请做。

当我有更多时间时,如果你想要的话,我会尝试在某个沙箱中进行操作:)。

<强>更新 Verson 2 更好的方法和灵活性

.ts文件:

&#13;
&#13;
public setFlag(obj: any, property: any, trueValue: any, falseValue: any): any {
  if (obj[property] === trueValue) {
    obj[property] = falseValue;
  } else {
    obj[property] = trueValue;
  }
}
&#13;
<input type="checkbox" name="hide-{{object.flag}}" [checked]="object.flag === 1" (change)="setFlag(object, 'flag', 1, 0)>
<input type="checkbox" name="dlte-{{object.flag}}" [checked]="object.flag === 1" (change)="setFlag(object, 'flag', 'true-value', 'false-value')>
&#13;
&#13;
&#13;

在函数setFlag中,我们采用4个参数:对象,对象的属性,true-value和false-value,这使我们可以灵活地设置我们想要的值,并且不使用mark-class。希望它有所帮助

答案 1 :(得分:0)

我认为实验者的答案太长,所以我给出一个简短的答案:

<input type="checkbox" [(ngModel)]="isActive" [checked]="isActive" name="active" (change)="isActive ? data.is_active = 1 : data.is_active = 0">

我只是在使用短接。

答案 2 :(得分:0)

使用以下来自 npm 的指令。 它可以替代 angular 2 中的 ng-true-value 和 ng-false-value https://www.npmjs.com/package/@nikiphoros/ngx-toggle