如何在Js控制器中使用我的HTML中的变量

时间:2015-07-24 04:32:40

标签: javascript angularjs html5

我想用ng-disable验证我的表单。

所以我的功能将检查用户输入的ID是否正确 如果所有输入都已填满,我还必须检查我的表格。

这是我的功能:

vm.validateid = function(){
    console.log('here');
    var objvar = {
        'id': vm.data.referalid,
        'referral2': true,
    };

    $http.post(ConfigCnst.restUrl,objvar).then(function(res) {
        if (res.data.status !== true) {   

             alert('Invalid ID');
             vm.data.referalName = 'Invalid ID';
             vlid = res.data.status;
             console.log(vlid);

        } else {

            alert('ID Validated');
            vm.data.referalName = JSON.stringify(res.data.data.name);
            vlid = res.data.status;
            console.log(vlid);
        }

    });
}

我想采取vlid。它将包含true或false。

这是我的ng-disable:

 <button ng-disabled="registerForm.$invalid" 
         ng-click="register.submit()"  
         class="button button-block button-positive">Confirm</button>

我想同时检查registerFormvlid都是假的 有没有办法从我的控制器中引用我的vlid

3 个答案:

答案 0 :(得分:2)

将变量vlid设置为控制器中的$scope变量($scope.vlid=vlid)。然后你可以在你的html视图中访问它。您需要更新ng-disabled表达式以包含vlid的条件。

<button ng-disabled="registerForm.$invalid && !vlid" ng-click="register.submit()"  class="button button-block button-positive">Confirm </button>

答案 1 :(得分:2)

无法查看控制器的定义位置/方式会使这更加困难,但是,您可以从控制器访问范围变量。
因此,可能有两种方法可以定义控制器:

使用ControllerAs:
您的html中会有myController as someName 然后,您可以将someName.vlid传递给您的函数,然后将其绑定到res.data.status

绑定到$ scope:
在您的控制器中,您将有一个参数$scope
然后,您可以在控制器中使用$scope.vlid或在html中使用ng-model='vlid',将其传递给您的函数,并以相同的方式对待它。

如果您已在控制器中定义了该功能,则可以使用ng-model='vlid'ng-model='someName.vlid',具体取决于控制器的定义方式。

答案 2 :(得分:0)

你可以使用$ scope来引用vlid。

vm.validateid = function() {
  console.log('here');
  var objvar = {
    'id': vm.data.referalid,
    'referral2': true,
  };
  $http.post(ConfigCnst.restUrl, objvar).then(function(res) {
    if (res.data.status !== true) {

      alert('Invalid ID');
      vm.data.referalName = 'Invalid ID';
      vlid = res.data.status;
      $scope.vlid_status = res.data.staus;
      console.log(vlid);
    } else {

      alert('ID Validated');
      vm.data.referalName = JSON.stringify(res.data.data.name);
      vlid = res.data.status;
      $scope.vlid_status = res.data.staus;

      console.log(vlid);
    }

  });
}

HTML

<button ng-disabled="registerForm.$invalid && vlid_status === false" ng-click="register.submit()"  class="button button-block button-positive">Confirm </button>