1

只要我點擊我的提交按鈕什麼都沒有發生,目前我所要做的就是打印出用戶名和密碼來測試那裏的綁定。 而且我可以與控制器通話並打印出我在控制器中製作的硬編碼消息,看起來ng-click不會在該方法上觸發。 任何幫助將是巨大的, 感謝:dNg-Click沒有觸發

<section id="register-view" class="mainbar"> 
    <section class="matter"> 
     <div class="container"> 
      <div class="row"> 
       <label>{{vm.message}}</label> 
       <form class="register-form"> 
        <label name="username_label"> Username: </label> 
        <input type="text" name="username" ng-model="vm.userDetails.username"/> 
        <br/> 
        <label name="password_label"> Password: </label> 
        <input type="text" name="password" ng-model="vm.userDetails.password"/> 
        <br/> 
        <button type="submit" class="btn btn-default" ng-click="vm.submitUserDetails()">Submit</button> 
       </form> 

      </div> 
     </div> 
    </section> 
</section> 

和控制器類

(function() { 
    'use strict'; 

    angular 
     .module('app.register') 
     .controller('RegisterController', RegisterController); 

    RegisterController.$inject = ['$q', 'dataservice', 'logger']; 
    /* @ngInject */ 
    function RegisterController($q, dataservice, logger) { 
     var vm = this; 
     vm.message = 'baass'; 
     vm.userDetails = { 
      username: '', 
      password: '' 
     } 

     function activate() { 
      var promises = [submitUserDetails()]; 
      return $q.all(promises).then(function() { 
       logger.info('Activated Dashboard View'); 
      }); 
     } 

     function submitUserDetails() { 
      console.log('Username: ' + vm.userDetails.username); 
      console.log('Password: ' + vm.userDetails.password); 
     } 
    } 
})(); 
+0

檢查控制檯,你在頁面中沒有任何錯誤 –

+0

我有沒有什麼會在控制檯 –

回答

3

您需要在控制器上下文添加submitUserDetails,使其可以在視圖,因爲你只定義的函數submitUserDetails。您應當在參考綁定到vm.submitUserDetails

vm.submitUserDetails = submitUserDetails; 
0

功能需要連接到$範圍

$scope.function submitUserDetails() { 
     console.log('Username: ' + vm.userDetails.username); 
     console.log('Password: ' + vm.userDetails.password); 
    } 
+0

這是部分正確的,他正在使用'control as'。要使用'$ scope',他需要將'$ scope'擴展到他的控制器中,在這種情況下可能不需要。 – Malkus

+0

你是說他需要添加$ scope作爲控制器依賴項嗎? – WesW

+0

正確,那就是它會繼承所有的父'$範圍' – Malkus

0

你似乎有一些問題與您的代碼,但是最大的是那些功能實際上並沒有附加到'this'(vm,正如你在代碼中所稱的那樣)。因此,它們不能被範圍訪問,因爲它們只能在RegisterController函數內訪問。

爲了解決這個問題,我會將此代碼添加到您的函數的底部:

this.activate = activate; 
this.submitUserDetails = submitUserDetails; 

同時,submitUserDetails()應該返回一個承諾,不是嗎?我預計這也會造成一些怪異的行爲。

+0

不,這只是一個測試,看看我的綁定是否正在工作,我什麼也沒有返回 –