Javascript 设置输入以更新范围变量似乎不起作用

Javascript 设置输入以更新范围变量似乎不起作用,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有一个控制器: .controller("myController", function($scope){ $scope.name = "Test"; $scope.desc = "Hello World!"; $scope.create = function(){ var test = {name: $scope.name, desc: $scope.desc} console.log(test); } } 以及模板: <label class="i

我有一个控制器:

.controller("myController", function($scope){
  $scope.name = "Test";
  $scope.desc = "Hello World!";

  $scope.create = function(){
    var test = {name: $scope.name, desc: $scope.desc}
    console.log(test);
  }
}
以及模板:

<label class="item item-input item-stacked-label">
    <span class="input-label">{{primaryName}}</span>
    <input type="text" placeholder="{{sampleName}} Name" value="{{name}}">
</label>
<label class="item item-input item-stacked-label">
    <span class="input-label">{{primaryName}}</span>
    <input type="text" placeholder="{{sampleName}} Name" value="{{desc}}">
</label>
<a ng-click="create()">Create Test</a>

{{primaryName}}
{{primaryName}}
创建测试
似乎当它运行时,输入被设置为Test,所以我将其更改为我想要的。Alpha并单击Create。它将执行console.log-out测试

我不知道我做的作业是否正确。我以为我是,但似乎不是这样

我做错了什么

Edit我还尝试让create函数接受变量,并传入这些变量,仍然使用示例:Test/HelloWorld文本字符串。


<div ng-app="myApp" ng-controller="myCtrl">
<label class="item item-input item-stacked-label">
    <span class="input-label">{{primaryName}}</span>
    <input type="text" placeholder="{{sampleName}} Name" ng-model="name" >
</label>
<label class="item item-input item-stacked-label">
    <span class="input-label">{{primaryName}}</span>
    <input type="text" placeholder="{{sampleName}} Name" ng-model="desc" >
</label>
<a ng-click="create()">Create Test</a>

</div>
{{primaryName}} {{primaryName}} 创建测试

您没有使用ng模型,这就是为什么(y)

您的console.log在哪里?因为当页面加载时,它可能正在运行您的脚本(此时它将是“测试”),然后在您更改它之后它就不再运行了。你需要一个变化中的监听器。我真的弄明白了。我从未为输入指定ng模型。绑定值不是值。如果我使用ng模型,我猜我仍然需要使用值来设置默认值?正如您应该知道的,ngModel指令将输入绑定到作用域上的属性,因此您不需要它:)