Angular - 绑定动态创建的对象

时间:2016-07-10 07:22:06

标签: angularjs angularjs-scope

我使用Angular并且我无法编辑动态创建的对象,即使它被正确显示(意味着绑定有效)。

我有以下观点:

<html>
  <head>
  </head>
  <body ng-app='TestApp'>
    <div ng-controller='TestCtrl'>
      <input ng-model="newModel().name"/>
    </div>
  </body>
</html>

以下控制器实现:

    var TestApp = angular.module("TestApp", []);

    function TestCtrl($scope) {
      $scope.newModel = function(){
        return { name: 'Fresh' }    
      }
    }

我使用方法返回正确的绑定对象,因为我需要执行一些逻辑来决定应绑定哪个对象。 输入字段显示正确的动态创建的值。但我似乎无法编辑它。

我做错了什么?这是实现这种功能的错误方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以更新函数中的scope变量,而不是返回对象并将函数附加到作用域。

控制器代码:

var TestApp = angular.module("TestApp", []);

function TestCtrl($scope) {
    $scope.newModel = {}; // initialize the scope variable
    function updateScope () {
        // do some logic
        $scope.newModel = { name: 'Fresh' }; // update it with the required object
    }

    updateScope(); // run the function
}

HTML code:

<body ng-app='TestApp'>
    <div ng-controller='TestCtrl'>
        <!-- remove `()` since `newModel` is no longer a function -->
        <input ng-model="newModel.name"/>
    </div>
</body>

希望这可以解决问题。