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
那样调用你的财产,你就相当安全了。