zoukankan      html  css  js  c++  java
  • 7.7 Models -- Working with Records

    Modifying Attributes

    1. 一旦一条record被加载,你可以开始改变它的属性。在Ember.js对象中属性的行为就像正常的属性。作出改变就像设置你想要改变的属性一样简单:

    var tyrion = this.store.findRecord('person', 1);
    // ...after the record has loaded
    tyrion.set('firstName', "Yollo");

    2. 对于修改属性来说,所有的Ember.js的方便性都是可用的。例如,你可以使用Ember.ObjectincrementProperty辅助器:

    person.incrementProperty('age'); // Happy birthday!

    3. 通过检查它的isDirty属性,你可以告诉一条发生显著改变的record是否被保存了。通过使用changedAttributes函数,你也可以发现record的哪一部分发生了变化并且原始值是什么。changedAttributes返回一个对象,它的keys是发生变化的属性并且值是一个values数组[oldValue, newValue]

    person.get('isAdmin');      //=> false
    person.get('isDirty');      //=> false
    person.set('isAdmin', true);
    person.get('isDirty');      //=> true
    person.changedAttributes(); //=> { isAdmin: [false, true] }

    4. 在这一点上,你可以通过save()持久化你的变化或者你可以回滚你的改变。调用rollback()还原所有changedAttributes到原始值。

    person.get('isDirty');      //=> true
    person.changedAttributes(); //=> { isAdmin: [false, true] }
    
    person.rollback();
    
    person.get('isDirty');      //=> false
    person.get('isAdmin');      //=> false
    person.changedAttributes(); //=> {}
  • 相关阅读:
    【算法】剑指第二版面试题6 :从尾到头打印链表
    Go电商秒杀 (1)
    Go秒杀服务端优化
    Linux AUFS 文件系统
    mount挂载虚拟文件系统
    自己动手写docker之Linux命令(CentOS7.7)
    自己动手写docker之namespace和cgroup
    【协作式原创】自己动手写docker之urfave cli
    Go 1.14之前的死循环Case
    linux下定时执行任务的方法
  • 原文地址:https://www.cnblogs.com/sunshineground/p/5165970.html
Copyright © 2011-2022 走看看