Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AnjularJS在按下按钮后获取文本框的值_Javascript_Angularjs - Fatal编程技术网

Javascript AnjularJS在按下按钮后获取文本框的值

Javascript AnjularJS在按下按钮后获取文本框的值,javascript,angularjs,Javascript,Angularjs,我通过控制器中的ajax请求设置文本框的值,如下所示: $http({method: 'GET', url: url}).success(function(data) { $scope.valzz = data; $scope.company = $scope.valzz[0].Company; }); 然后在我的html中: <label class="item item-input ite

我通过控制器中的ajax请求设置文本框的值,如下所示:

$http({method: 'GET', url: url}).success(function(data) {
                $scope.valzz = data;
                $scope.company = $scope.valzz[0].Company;   

            });
然后在我的html中:

<label class="item item-input item-stacked-label">
            <span class="input-label">Company :</span>
            <input type="text" placeholder="Company" value="" ng-model="company">
          </label>

<button class="button button-positive" style="margin-top:10px;" ng-click="saveChanges()">
  Save Changes
</button>
为什么$scope.company不是文本框的新值?我做错什么了吗?很抱歉,如果我是角度角度的新手

请尝试删除值=

HTML:


你没有那个模型的观察者

$scope.$watch('company', function(company) {
  console.log(company);
}
或者在模板中,可以插值值:

{{company}}

然后你可以在html页面上看到它的变化,因为angular会在幕后监视它

需要把这个.company not$scope

请在$http调用之前定义$scope.company

app.controller('myCtrl', function($scope, $http){
  $scope.company = null; // <--
  $http({method: 'GET', url: url}).success(function(data) {
    $scope.valzz = data;
    $scope.company = $scope.valzz[0].Company;

  });
}
因为,一旦呈现了部分,它将只获取$scope中定义的属性。之后,如果在$scope中添加了任何属性,则需要调用$apply


希望这能对您有所帮助。

我假设您的$scope工作正常,并且您已经在应用程序中初始化了控制器,并且链接到了正确的控制器文件。请将您的代码与我这里的代码进行比较,因为它工作正常

HTML:


编辑:

尝试将company传递给saveChanges函数这是一个包含30个左右字段的表单,我真的需要全部通过吗?nvm哈哈,你能添加更多的代码让我看看吗?它应该可以工作,因为它是双重绑定的,即模型和views@sebenalern这就是真正的mate,我只取出了其他29个变量和文本框Haastill没有新的值:你能有一个基本的小提琴,这样我就可以在那里调试它吗?
$scope.$watch('company', function(company) {
  console.log(company);
}
{{company}}
app.controller('myCtrl', function($scope, $http){
  $scope.company = null; // <--
  $http({method: 'GET', url: url}).success(function(data) {
    $scope.valzz = data;
    $scope.company = $scope.valzz[0].Company;

  });
}
<html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
    <script src ="controller.js"></script>
    </head>
<body>

<div ng-app="myApp" ng-controller="testController">
<form>
    <label class="item item-input item-stacked-label">
                <span class="input-label">Company :</span>
                <input type="text" placeholder="Company" ng-model="company">
              </label>

    <button class="button button-positive" style="margin-top:10px;" ng-click="saveChanges()">
      Save Changes
    </button>
</form>
</div>
</body>
</html>
(function(){
    'use strict';
    var app = angular.module('myApp', []);
    app.controller('testController', [ '$scope', function ($scope){

            $scope.saveChanges=function(){
                alert($scope.company);
            };

        }]);

})();