Joh*_*ohn 5 javascript angularjs
我有一个DTO对象,它有一个Date参数.我将此Dto包装在视图模型对象中,然后我将视图中的属性绑定到标签.
<label class="form-control">{{controller.ViewModel.Date}}</label>
Run Code Online (Sandbox Code Playgroud)
在视图模型中,我有一个吸气剂.(我正在使用TypeScript)
public get Date(): Date {
return new Date(Date.parse(this.dto.Date));
//return moment(this.dto.Date).toDate();
}
Run Code Online (Sandbox Code Playgroud)
发出的JavaScript:
Object.defineProperty(ViewModel.prototype, "Date", {
get: function () {
return new Date(Date.parse(this.dto.Date));
},
enumerable: true,
configurable: true
});
Run Code Online (Sandbox Code Playgroud)
我相信原因是因为我在getter和angular中创建一个新的Date认为这意味着日期总是新的并且它一直保持日期直到模型稳定,从而导致无限循环.
为什么棱角分明这样做?
为什么它一遍又一遍地调用getter,只调用一次有什么问题?
我可以告诉角度只是调用一次吸气剂并接受它给出的值吗?
如果您的版本足够高,您可以尝试一次性绑定。请按照此处的说明进行操作:https ://docs.angularjs.org/guide/expression#one-time-binding
您的假设基本上是正确的,即角度认为日期始终是新的。您正在通过吸气剂和角度的脏检查中的评估来更改该值,并且手表会触发另一个摘要。
您也可以尝试提前解析日期吗?
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |