我找不到一个简单的答案。所以,我希望这里的专家可以用Layman的术语来解释它。正如我们的好朋友阿尔伯特爱因斯坦所说的那样:“如果你无法向一个六岁的孩子解释它,你自己就不明白了。”
据我所知,我读到了......
Controller = Main Duty is to create $scope
View = Template + data
Model = data
Data = Database Data or API Data or User Input(View Data)
控制器构建一个名为$ scope的对象。它将属性和方法(函数)添加到$ scope对象。它可以调用函数getData()从数据库或API中获取数据,并定义和填充$ scope属性和方法。它还可以将函数附加到$ scope,可用于将DB同步到它创建的$ scope。
创建$ scope后,双向数据绑定的神奇之处就会受到影响。如果用户输入名称:在文本框中...它自动与$ scope同步。但是,这如何连接到数据库?数据库是否也会自动更新?
当我们谈论MODEL(数据)时...他们说它不是$ scope,但$ scope暴露了MODEL。 MODEL(数据)可以是DB或API或用户输入.... MODEL在哪里?它在哪里生活? DB或是MODEL,DB和API的组合。用户输入?
如果有人能够提供一份“六年之久的简单”总体图表或描述如何将所有这些结合在一起我会非常感激。
答案 0 :(得分:1)
坚果壳:
HTML视图包含的指令只是类,元素,属性和注释。在编译和链接阶段,指令被呈现'意思是它们被转化,并通过绑定给出行为。
控制器初始化视图模型(反过来初始化视图)。如果控制器来自指令,或者来自在HTML元素上声明的ng-controller,则这是真的。
从控制器调用服务(从不直接从视图中调用),以检索和保留数据。服务可以被认为是模型(不要与视图模型混淆)。在控制器与模型交互之后,控制器然后通过更新范围变量来更新视图模型。
更新范围变量时,它们会触发手表处理程序,然后更新View。
希望有所帮助