2016-09-29 67 views
0

從文本框特定蛞蝓我完全陌生的餘燼,所以請好:)重定向到燼

我有灰燼的應用程序,我想重定向到從文本框輸入採取特定的蛞蝓。在我的.hbs中,我有以下代碼:

<div class="liquid-container"> 
    <div class="liquid-child"> 
    <div class="desktop-layout-scroll-container"> 
     <div class="overlay-info-layout"> 
     <div class="overlay-info-layout-content"> 
      <h1 class="expired-overlay-status">{{t 'code.title'}}</h1> 
      <h2 class="expired-overlay-explanation"> 
      {{t 'code.description'}}<br> 
      </h2> 

      <div class="row"> 
      <div class="col-xs-offset-3 col-xs-6"> 
       <input name="txtSlug" type="text" id="txtSlug" class="field" />    
       <input type="submit" name="btnGo" value="" id="btnGo" class="btn" onclick="javascript:SubmitForm()" /> 
      </div> 
      </div> 

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

<script type="text/javascript"> 
    function SubmitForm(){ 
     var Slugtxt = document.getElementById("txtSlug").value; 
     window.location = "http://www.google.com/" + Slugtxt; 
    } 
</script> 
+0

你這麼做太錯誤了......不想太卑鄙或粗魯,但請在編寫代碼之前閱讀官方指南(https://guides.emberjs.com/v2.8.0/)。 –

回答

0

您不應該將JavaScript嵌入到Ember .hbs文件中。這段代碼應該真正在你的控制器中用於這個類。首先,生成你的控制器:

ember g controller <name_of_route> 

然後在你的控制器裏面,你要定義兩件事情。 slugtxt變量,以及作爲動作的重定向。這將是這個樣子:

import Ember from 'ember'; 

export default Ember.Controller.extend({ 

    slugtxt: '', 

    actions: { 
    redirect() { 
     window.location = "http://www.google.com/" + this.get('slugtxt'); 
    } 
    } 
} 

然後,回到你的模板,你想改變你的輸入被映射到從控制器slugtxt變量,並設置按鈕的操作到redirect行動你在你的控制器中定義的。這將是這個樣子:

{{input value=slugtxt}} 
<button {{action "redirect"}}>Submit</button> 

無需擔心使用<input>標籤,你通常不會是使用表單數據與Ember。

+0

嗨,湯姆。最後有時間解決您的問題。 當我嘗試使用您的代碼時,出現以下錯誤: controllers/index.js:第9行,第54列,'slugtxt'未定義。 –

+0

嗨,我編輯修復程序時出現了一個錯誤。現在嘗試代碼。 – Tom