2016-10-04 38 views
1

我有一個控制器:設置輸入更新範圍的變量似乎沒有工作

.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> 

看來,它運行時,輸入被設置爲測試所以我改變它到我想要的。 Alpha然後點擊創建。它將console.log出測試

我不知道我是否正確地做任務。我以爲我是,但它似乎是另一回事。

我在做什麼錯了?

編輯我也嘗試讓create函數接受變量,並將它們傳入,仍然使用示例:Test/HelloWorld文本字符串。

+0

哪裏是你的console.log?因爲它可能會在頁面加載時正確運行腳本(當時它將是「測試」),然後在您更改它之後它不會再運行。你需要一個更改監聽器。 – ThatTechGuy

+0

其實我想通了。我從未將ng模型分配給輸入。綁定的價值不是價值。 – Fallenreaper

回答

1
<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> 

您沒有使用NG-模型,這就是爲什麼(Y)

+0

如果我使用ng模型,即時猜測我仍然需要使用值,設置默認值? – Fallenreaper

+0

正如你應該知道的那樣,ngModel指令將輸入綁定到作用域上的屬性,所以你不需要它:) –