Javascript 在组件中单向绑定对象或数组的角度方式是什么?
我正在创建一个组件来编辑简单对象的数组Javascript 在组件中单向绑定对象或数组的角度方式是什么?,javascript,angularjs,Javascript,Angularjs,我正在创建一个组件来编辑简单对象的数组 根据,组件应该使用单向(我相信您引用的文档是专门讨论更改对象或数组属性的,因为此更改不会反映在父范围中。我看不出组件更改传入的对象有任何问题 例如,如果通过“对象”绑定将数组传递到组件中,然后组件将其“对象”属性设置为不同的数组,则原始父数组将不会引用此更改 与=的区别在于,组件范围中的绑定属性不受监视,这意味着如果您为组件范围中的属性指定新值,它将不会更新父范围。但是,请注意,父范围和组件范围都引用同一对象,因此如果您更改组件范围中的对象属性或数组元素因
根据,组件应该使用单向(
我相信您引用的文档是专门讨论更改对象或数组属性的,因为此更改不会反映在父范围中。我看不出组件更改传入的对象有任何问题
例如,如果通过“对象”绑定将数组传递到组件中,然后组件将其“对象”属性设置为不同的数组,则原始父数组将不会引用此更改
与=的区别在于,组件范围中的绑定属性不受监视,这意味着如果您为组件范围中的属性指定新值,它将不会更新父范围。但是,请注意,父范围和组件范围都引用同一对象,因此如果您更改组件范围中的对象属性或数组元素因此,一般规则应该是永远不要更改组件范围中的对象或数组属性
对我来说,答案很简单-组件不需要执行数据操作。你告诉我你创建了组件来编辑数组?那么这就是你可以开始使用服务的地方。每个服务都是单例的,因此你可以从你注入它的每个地方引用相同的对象属性。签出JS团队谈到服务
通过作用域管理数据是鲁莽的。作用域很容易成为
被其他控制器、指令、模型和
比如。它很快就会变得混乱。有一个中央频道(在这个例子中是一个
服务)。。。
它不仅更干净,而且更易于管理
应用程序不断增长。最后,它使您的代码模块化
Angular擅长)你是否需要为他人提供该服务
项目中,您不需要深入研究范围、控制器、过滤器,
等找到相关的代码-它都在那里的服务
说到组件-首先它们是HTML指令。组件应该有HTML模板。组件的目的是在其模板中反映从父范围接收的一些数据,并传递一些事件或数据(这是用户交互的结果)如果您需要组件中的外部逻辑,最好将其委托给服务。文档还声明“只有拥有数据的组件才应该修改它”。很公平。我认为“对象编辑器”可以编辑对象。我不同意您的说法,即您需要创建对象的本地副本。
。保持对传入数组的引用不变,并通过回调在父数组中修改它。您如何实现输入和选择绑定,而不改变传入的数组在数组数据中?我不会…。我会变异传入的数组数据。也就是说,您可以探索为change
事件添加侦听器,然后调用preventDefault()
。将更改传递给父对象,并让其对对象进行变异。这似乎并不能回答问题。停止使用服务来执行数据操作没有任何问题-示例中使用控制器是为了方便。如果我们想将组件重新用于问题不在于实现,而在于您选择的整个方法
{
objects: "<",
addObject: "&",
deleteObject: "&",
updateObject: "&"
}