Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Angular中分离数据模型和本地数据模型?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在Angular中分离数据模型和本地数据模型?

Javascript 如何在Angular中分离数据模型和本地数据模型?,javascript,angularjs,Javascript,Angularjs,我希望我能解释我的意思 假设我有一辆车资源。汽车具有属性颜色,名称或其他任何属性 我得到使用服务的汽车列表,类似于cars.index() 但是在界面中,我有所有的车,当我点击一辆车时,会出现一个小弹出窗口,显示编辑颜色和名称的输入 问题来了。在哪里保存displayingInputs属性 我是否应该直接将其保存在car资源中,然后在提交到更新的资源时只发送原始属性 我是否应该创建一个名为carWidget的新服务,或者类似于以下内容的服务: { car: cars.get(carId),

我希望我能解释我的意思

假设我有一辆
资源。汽车具有属性
颜色
名称
或其他任何属性

我得到使用服务的汽车列表,类似于
cars.index()

但是在界面中,我有所有的车,当我点击一辆车时,会出现一个小弹出窗口,显示编辑
颜色和
名称的输入

问题来了。在哪里保存
displayingInputs
属性

  • 我是否应该直接将其保存在car资源中,然后在提交到更新的资源时只发送原始属性

  • 我是否应该创建一个名为
    carWidget
    的新服务,或者类似于以下内容的服务:

    {
      car: cars.get(carId),
      displayingInputs: false
    }
    
  • 我是否应该将
    显示输入
    存储在
    carWidget
    指令范围内?如果需要更改父作用域中的`DisplayInInputs',会发生什么情况?(例如,制作“全部显示”/“全部隐藏”按钮时)

  • 还有别的吗


  • 我的最佳选择是#3,但我不确定如何从小部件外部访问
    显示输入。

    如果你想保持你的
    汽车
    模型清洁,你可以有一个单独的变量
    editedCar
    并用
    ng show=“car==editedCar”
    显示每个弹出窗口

    如果可以同时编辑多个汽车,
    editedCars
    可以是一个关联数组(汽车ID=>boolean),并使用
    ng show=“editedCars[car.ID]”显示弹出窗口

    另一种不发送某些汽车属性的方法是在其名称前加上
    $
    标志。这只是使用
    汽车。$displayingInputs
    。注意名称冲突,因为Angular使用此前缀存储内部数据

    从:

    将输入序列化为JSON格式的字符串。带前导的属性 由于angular使用此符号,$字符将被删除 内部


    一个非常有用的示例:
    displayingInputs
    的用途是什么?displayingInputs将是一个布尔值,指示是否为该车显示输入。很酷,不知道在属性前面加$。但是可以使用吗?我的意思是,文档支持在做这种事情时使用这种方法吗?我没发现有明确的说明。已记录以$开头的剥离属性。唯一不能证明未来的是,您的属性名称可能与Angular的下一个版本冲突。如果你像
    $mycompanynamedinginput
    那样调用你的财产,你就相当安全了。