0

我有以下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>

和后面的js代码:

 $scope.addPath = function() {
        $scope.watchedFolders.push($scope.newPathText);
        apiService.addScanPath($scope.newPathText)
        $scope.newPathText= '';
    };

但是,当我调试它并调用 addPath() 时,我看到'$scope.newPathText' 总是为空('')......我在这里遗漏了什么吗?

谢谢

4

1 回答 1

6

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

$scope.newPath = { text: ''};

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

<input type="text" ng-model="newPath.text" ... >

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

遵循一个简单的准则可以避免原语的这个问题:总是有一个 . (点)在您的 ng-model 属性中。这篇文章有关于这个问题的有价值的信息。

于 2013-08-22T04:10:14.253 回答