Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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 AngularJS双向绑定_Javascript_Angularjs_Angularjs Scope_Dom Events - Fatal编程技术网

Javascript AngularJS双向绑定

Javascript AngularJS双向绑定,javascript,angularjs,angularjs-scope,dom-events,Javascript,Angularjs,Angularjs Scope,Dom Events,我在AngularJS中遇到双向绑定问题。在我的HTML中,我有: 模型 ... 在JavaScript方面,我有: (函数(){ var app=angular.module('creation'、['validation'、'link']); app.controller('CreationController',['$scope',函数($scope){ $scope.data={}; $scope.data.model='hello'; ... 为什么当我呈现HTML页面时,$sc

我在
AngularJS
中遇到双向绑定问题。在我的
HTML
中,我有:


模型
...
JavaScript
方面,我有:

(函数(){
var app=angular.module('creation'、['validation'、'link']);
app.controller('CreationController',['$scope',函数($scope){
$scope.data={};
$scope.data.model='hello';
...

为什么当我呈现
HTML
页面时,
$scope.data.model
没有显示hello?相反,它没有显示任何内容,当我最终在输入字段中输入一些内容时,它会更新
$scope.data.model

这是因为您在
$scope
上设置了数据模型,但在HTML中您引用了它在控制器实例
cCtrl
下进行ncing。尝试在html中使用
ng model=data.model

实际上,“controller as”语法非常有用且易于理解。 我更愿意保留它,因为您可以根据需要隔离数据,并以更干净的方式使用它

代码的问题是必须将数据对象绑定到,而不是绑定到$scope

(function() {
var app = angular.module('creation', ['validation', 'link']);

app.controller('CreationController', [function() {
    // You can use an object to refer to *this* (vm stands for 'ViewModel').
    var vm = this;
    vm.data = {};
    vm.data.model = 'hello';
    // or just have vm.data = {model: 'hello'};
...
然后在模板中使用它,就像您使用过它一样

除此之外,没有注入$scope**,除非您希望使用特定于angular的内容,如digest或watch,或从父作用域/父控制器继承

这里还有一个很好的angular样式指南,解释了其他概念: