【问题标题】:Angular - Controller can't see my variables in htmlAngular - 控制器在 html 中看不到我的变量
【发布时间】:2017-01-26 01:50:13
【问题描述】:

我在这里是因为我无法让我的控制器看到我的 html 变量我们的函数,也许你们看到了我没有看到的东西 =(

HTML:

<article ng-controller="CreateUserController">
  <div class="well">
    <center>
      <h1>Registrar</h1> <button ng-click="test()">Teste</button>
      </br>

      <form name="form">
        <div class="form-group has-feedback"
          ng-class="{
              'has-error': form.name.$invalid && form.name.$dirty,
            'has-success': form.name.$valid   && form.name.$touched
          }">
          <div>
            <input ng-disabled="true" type="name" required name="name" class="form-control" placeholder="Nome" ng-model="user.name">
            <p class="help-block" ng-messages="form.name.$error">
              <span ng-message="required">Nome esta vazio.</span>
            </p>
          </div>
        </div>
      </form>

    </center>
  </div>
</article>

JS:

 angular.module('auth').controller('CreateUserController', [
  '$scope', '$http', '$location','$state','$routeParams', '$modal','$rootScope',"$resource","Auth",'UserCompaniesService',
  function($scope, $http, $location,$state,$routeParams, $modal,$rootScope,$resource,Auth,UserCompaniesService){

    $scope.signedIn = Auth.isAuthenticated;
    $scope.logout = Auth.logout;

    var Account = $resource('/accounts/'+$routeParams.id+'.json',
                             {},
                             { "show": { "method": "GET" }});
    account = Account.get({"account_id":$routeParams.id});

    //Not being seen
    $scope.test = function() {
      alert('teste');
    }
    $scope.user.name = account.name;//$scope.user is not being seen
    $scope.user.email = account.email;

user.html.erb

<article ng-app="auth">
  <div ng-view></div>
</article>

你们能帮帮我吗?

【问题讨论】:

  • 欢迎来到 SO。请提供一些信息,说明您到底经历了什么?请尽可能具体。您是否在控制台中看到任何 javascript 错误? AngularJS 非常擅长输出非常具体的信息来帮助你。
  • 您在哪里提交表单?也许您需要检查 ng-submit 指令并为其分配一个函数。
  • 请放入plunker:plnkr.co
  • 没有错误,只是 $scope.user 未定义。它不仅仅是关于表单,带有 ng-click test() 的按钮也不起作用 =/
  • 这里没有足够的代码来创建minimal reproducible example 并重新创建您的问题。

标签: html angularjs scope angularjs-scope


【解决方案1】:

看起来你想在 $scope 上有一个名为 user 的对象:

$scope.user.  

您在模型中拥有与此对象相关联的值。您必须自己在控制器的构造函数中创建此对象:

$scope.user = {};

然后您的模型绑定将填充诸如 $scope.user.name 来自 HTML 中的输入。

【讨论】:

    猜你喜欢
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多