Javascript 将绑定数据推送到对象中';不行?

Javascript 将绑定数据推送到对象中';不行?,javascript,angularjs,Javascript,Angularjs,演示和代码如下: 我试图通过允许用户添加更多的选项卡来使我的选项卡动态化,但它似乎无法获取名称,我想知道我是否会将其与ngmodel绑定 <input type="text" ng-model="NewTabName"/> <button ng-click="addTab()">Add</button> 此处更新了plunkr: 您必须将ng model绑定到某个对象的属性,而不是对象本身。否则,它(即角度)可能(在本例中是)在您认为的范围之外的其他范围内创

演示和代码如下:

我试图通过允许用户添加更多的选项卡来使我的选项卡动态化,但它似乎无法获取名称,我想知道我是否会将其与ngmodel绑定

<input type="text" ng-model="NewTabName"/>
<button ng-click="addTab()">Add</button>
此处更新了plunkr:

您必须将
ng model
绑定到某个对象的属性,而不是对象本身。否则,它(即角度)可能(在本例中是)在您认为的范围之外的其他范围内创建对象
NewTabName

$scope.addTab = function(){
    $scope.tabs.push({
        "name" : $scope.NewTabName.text
    });
    $scope.NewTabName.text = "";
}

<input type="text" ng-model="NewTabName.text"/>
<button ng-click="addTab()">Add</button>
$scope.addTab=function(){
$scope.tabs.push({
“名称”:$scope.NewTabName.text
});
$scope.NewTabName.text=“”;
}
添加
更换:

$scope.tabs.push({
      "name" : $scope.NewTabName
  });
$scope.NewTabName = "";
与:

问题是作用域继承,在$scope的子作用域上创建了
NewTabName
属性。通过使用此,我可以访问触发事件的正确范围


。文本是默认属性或新创建的属性?已创建。在控制器的开头:
$scope.NewTabName={text:'}我的父对象的父对象范围是什么?“tabs”?@user3398172:控制器作用域的父级是根作用域。
$scope.tabs.push({
      "name" : $scope.NewTabName
  });
$scope.NewTabName = "";
$scope.tabs.push({
      "name" : this.NewTabName //Use this instead of $scope
  });
this.NewTabName = ""; //Use this instead of $scope