当前位置: 首页 > 面试题库 >

AngularJs无法访问控制器中的表单对象($ scope)

张玺
2023-03-14
问题内容

我正在使用bootstrap-ui更具体地说是模态窗口。我有一个模态表单,我想要的是实例化表单验证对象。所以基本上我是这样做的:

<form name="form">
    <div class="form-group">
        <label for="answer_rows">Answer rows:</label>
        <textarea name="answer_rows" ng-model="question.answer_rows"></textarea>
    </div>
</form>

<pre>
    {{form | json}}
</pre

我可以毫无问题地在html文件中看到表单对象,但是,如果我想从控制器访问表单验证对象。它只是向我输出空对象。这是控制器示例

.controller('EditQuestionCtrl', function ($scope, $modalInstance) {
    $scope.question = {};
    $scope.form = {};

    $scope.update = function () {
        console.log($scope.form); //empty object
        console.log($scope.question); // can see form input
    };
});

我无法$scope.form从控制器访问的原因可能是什么?


问题答案:

仅对于那些未在控制器中使用$scope而是使用的用户,this您必须在表单名称之前添加控制器别名。例如:

<div ng-controller="ClientsController as clients">
  <form name="clients.something">
  </form>
</div>

然后在控制器上:

app.controller('ClientsController', function() {
  // setting $setPristine()
  this.something.$setPristine();
};

希望它也有助于整体答案。



 类似资料:
  • 问题内容: 我们有一个页面打开一个模态对话框,其形式如下。但是,当我们点击应该处理表单动作的控制器时,表单对象是未定义的,并且我太过喜欢Angular新手了,不明白为什么… 这是父页面控制器持有的用于打开模式对话框的功能: 在这样的页面上: 邀请对话框html如下所示: 应该处理邀请的控制器在其他地方: 那么将表单范围带入控制器的正确方法是什么? 也许我需要注入并将其添加到函数中?但是当我这样做时

  • 问题内容: 我有上面的控制器,它设置了一个我只能从内部访问值的控制器。 但我看到的地方,使用下面我将能够访问,但是当我在它不存在。 我无法弄清楚如何访问$ scope并使用变量更新它。 问题答案: 没有看到标记,我想MenuSideController的作用域是您选择的作用域的子作用域。 虽然可以像这样遍历树(假设我们想要的作用域是第一个孩子): 仅选择连接了特定控制器的元素会更简单。 假设您正在

  • 试图将$http.post请求从AngularJS表单发送到Symfony控制器以将表单内容添加到数据库。我可以在AngularJS侧获得"状态"200的成功响应。 但是,在Symfony控制器上,$request- 另外,安装了FOSRestBundle并启用了body listener、param fetcher listener。 我知道我的问题与AngularJS对Symfony控制器的P

  • 我对控制器对象有点困惑。据我所知,默认情况下,控制器是单例的。singleton是如何为web应用程序工作的,如下面的代码中所示,如果线程1执行到第9行,empId为12,线程2从线程1获得控制,empId为23,并完成整个方法的执行,那么当线程1再次执行时,empId的值将是12或23。 我还注意到,UserServiceDao类只创建了一个对象,所以在spring mvc中线程是如何管理的,每

  • 问题内容: 为什么无法从另一个内部访问其他控制器方法呢? 像这样。 已编译 如果您不能这样做,那为什么不呢?我还应该怎么做… 问题答案: 最近几个小时遇到相同的问题。我使用了api / services文件夹。它可能不完全是您所需要的,但是它是一个选择。

  • 我尝试注入$scope,然后使用,但这不起作用? 有人能提供建议吗?