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指令将输入绑定到作用域上的属性,因此您不需要它:)