使用ng-view时无法访问ng-model变量

时间:2015-06-08 02:48:33

标签: angularjs

我有以下表单,我通过 ng-view

将其包含在主应用中

表单小组

<form action = "#" method="post" class="form-horizontal" id="commentForm" role="form">      
<div class="form-group">
<div class="col-sm-10">
<textarea class="form-control" type="text" ng-model="userComment" placeholder="New Discussion Topic" rows="5"></textarea>             
</div>
</div>

<div class="form-group" id="div_submitComment">
<div class="col-sm-offset-2 col-sm-10">                    
<button class="btn" type="button" id="submitComment" ng-click="vm.addComment()">Submit comment</button>
</div>
</div>
</form>

单击提交按钮后,将调用控制器功能。在控制器功能中,我无法访问变量 $ scope.userComment

控制器代码段

(function () {
'use strict';

angular
    .module('app')
    .controller('DiscussionBoardController', DiscussionBoardController);

DiscussionBoardController.$inject = ['UserService', '$rootScope', '$scope', '$cookieStore', 'AuthenticationService'];
function DiscussionBoardController(UserService, $rootScope, $scope, $cookieStore, AuthenticationService) {  

    function addComment() {                         

        $.getJSON(
        "http://localhost/DBoardPage/server/discussion-board/postComment.php",              // The server URL 
        { userName: $scope.currentUser ,  userComment:$scope.userComment , commentID:0 },   // Data you want to pass to the server.
        $scope.addCommentResponse                                           // The function to call on completion.
        );      
    };
    /*End - Discussion Board related Functions*/
}

})();

虽然我知道在使用ng-include,ng-view和ng-repeat时会创建一个子范围,但我没有举例解释其用法。

请让我知道如何解决这个问题

1 个答案:

答案 0 :(得分:0)

你确定它不是$ scope.currentUser不存在吗?您正在使用未声明的变量。

尝试添加:

$ scope.currentUser =“”; $ scope.userComment =“”;

由于您使用的是AngularJS,因此以Angular方式创建函数可能更好。

$ scope.addComment = function(){....

如果仍无法正常显示您的设置。