2015-09-08 61 views
1

所以我需要添加列表,但我不能使用按鈕和窗體。 (不能因爲即時通訊使用角度使單頁應用POST使用輸入文本的角度

所以我有按鈕+,當我按它出現輸入文字。所以我想在我輸入列表名稱後按下POST(創建新列表),然後按ENTER鍵,之後我想再次隱藏輸入。

問題

如何以角度說,我進入了新的列表名稱,並按下Enter鍵?我想要的東西是:我按+,出現輸入,我輸入列表名稱,按回車鍵,我的角度控制器開始工作(從輸入POST數據),輸入文字隱藏。

我的代碼

我+ 「按鈕」:

<a href="javascript:hideshow(document.getElementById('adiv'))"> <div class="category theme_border_6" style="position: relative; left: 0px; float: left; margin: 10px 10px 10px 10px; top: 0px;"><div class="name theme_title_color_3"> + </div> 

<input type="text" ng-model="listname" id="adiv" ng-keypress="runScript(e)" class="form-control" style="font:24px bold; display: none" placeholder="NEW LIST" /> 

<div class="count theme_color_4_light"></div> 
</div></a> 

我的腳本來顯示輸入文字:

function hideshow(which){ 

    if (which.style.display=="none"){ 
     which.style.display="block"; 
    which.focus();} 

    else 
    which.focus(); 
    $(which).blur(function() { 
    which.style.display = "none" 
    }); 
} 

我的角度爲POST(runScript中不能正常工作,但代碼下面是很好,我只需要說不知何故我按下輸入文本字段):

myApp.controller('createListController', ['$scope', '$log', '$http','$location', 
    function($scope, $log, $http, $location){ 

     $scope.runScript = function (e) { 
      if (e.keyCode == 13) { 
       var list = { 
        name: $scope.listname 

       }; 
       console.log(e); 
       $http({ 
        method: 'POST', 
        url: 'http://localhost/anydocopy/public/lists', 
        data: list 
       }) 
        .success(function() { 
         console.log('true'); 
         return $location.path(''); 
        }) 
        .error(function() { 
         console.log('false'); 
        }); 
      }}; 
    }]); 

回答

1

問題是,您沒有收到$ scope中定義的runScript函數中的事件對象。使用ng-keypress =「runScript($ event)」更改ng-keypress =「runScript(e)」。

<!-- Example: --> 
<input type="text" ng-model="listname" ng-keypress="runScript($event)" .../> 
+0

是的,你是對的..但我改成了ng-keydown =「」..但是還是謝謝。 – rincuuk