为什么我的ng模型不绑定?

Or *_*r A 0 angularjs angularjs-scope

我有以下html:

<form ng-submit="addPath()">
                <input type="text" ng-model="newPathText"  style="width: 500px;" placeholder="Enter a local or network folder location (e.g., K:\documents\new-york)">
                <input class="btn-primary" type="submit" value="add" style="margin-bottom: 10px">
            </form>
Run Code Online (Sandbox Code Playgroud)

和后面的js代码:

 $scope.addPath = function() {
        $scope.watchedFolders.push($scope.newPathText);
        apiService.addScanPath($scope.newPathText)
        $scope.newPathText= '';
    };
Run Code Online (Sandbox Code Playgroud)

然而,当我调试它并调用addPath()时,我看到'$ scope.newPathText'总是变空('')...我在这里丢失了什么吗?

谢谢

Mic*_*ord 6

由于范围的原型性质,您不应该将视图数据绑定到基本类型.在您的情况下可能发生的是您的视图绑定到与控制器范围不同的子范围.尝试将模型更改为以下内容:

$scope.newPath = { text: ''};
Run Code Online (Sandbox Code Playgroud)

然后将您的视图绑定到它:

<input type="text" ng-model="newPath.text" ... >
Run Code Online (Sandbox Code Playgroud)

这将确保您的视图绑定到正确的范围.

遵循一个简单的准则可以避免这个原语问题:总是有一个.你的ng-model属性中的(点).这篇文章有关于此事的宝贵信息.