javascript - 父子 Controller 的 Angular JS 错误

标签 javascript html angularjs

我在使用 Angular Controller 时遇到了一个奇怪的错误。此错误重现 JSFiddle HTML 示例:

    <div ng-app>
  <div ng-controller="GroupViewerController">
          <table class="table table-striped">
                <tr ng-repeat="a in arr" ng-controller="OneGroupViewerController">
              <td >{{a}} <button ng-click="change(a)">change</button></td>
                </tr>
            </table>
  </div>
  <div ng-controller="oneGroupItemsController">
    <input type="text" ng-model="$parent.selectedObject">
  </div>
  </div>

JavaScript:

    function GroupViewerController($scope) {
  $scope.selectedObject = "test";
  $scope.arr = ["a","b"]
}

function OneGroupViewerController($scope) {
  $scope.change = function (a){
       $scope.$parent.selectedObject = a;
  }
}

function oneGroupItemsController($scope) {

}

错误:

  1. 为什么已经引用了父 Controller 对象,但“test”没有出现在文本框中
  2. 按下按钮更改时,为什么文本框包含selectedObject的新值

最佳答案

你犯了一些小错误,同时使用 ng-controller 和 ng-repeat 也不是一个好主意。

HTML:

<div ng-app>
  <div ng-controller="GroupViewerController">
          <table class="table table-striped" >
                <tr ng-repeat="a in arr" ng-controller="OneGroupViewerController">
              <td >{{a}} <button ng-click="change(a)">change</button></td>
                </tr>
            </table>
  <div ng-controller="oneGroupItemsController">
    <input type="text" ng-model="$parent.updateVar.selectedObject">
  </div>
  </div>

  </div>

JS:

function GroupViewerController($scope) {
  $scope.updateVar = {};
  $scope.updateVar.selectedObject = "test";
  $scope.arr = ["a","b"]
}

function OneGroupViewerController($scope) {
  $scope.change = function (a){
       $scope.$parent.updateVar.selectedObject = a;
  }
}

function oneGroupItemsController($scope) {

}

工作 fiddle :https://jsfiddle.net/3L4gg6jv/7/

关于javascript - 父子 Controller 的 Angular JS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39691545/

相关文章:

javascript - 在 indexedDb 中添加多个对象的正确方法?

html - 如何以与 paypal 按钮相同的方式将 .swf 对象链接到 paypal?

javascript - 使用水平 slider 时禁用侧面菜单滑动事件 - ionic

JavaScript 具有多线程功能?

angularjs - 在 angularjs 的文本框中显示建议

javascript - AngularJS ui-网格文本对齐

javascript - 如何在 v-for 循环中仅打印第一个获胜者?

javascript - jQuery fadeOut 关闭错误的 div

javascript - 删除数组元素

angularjs - DOMException : The requested file could not be read, 通常是由于在获取对文件的引用后发生的权限问题