簡體   English   中英

如何將值從ng-click傳遞到ng-model?

[英]How to pass value from ng-click to ng-model?

在我正在使用的外語詞典應用程序中,我有一個過濾器,該過濾器使用正則表達式將搜索結果中的每個單詞都轉換為URL,希望用戶能夠單擊並運行新的搜索。

例如:

<a href ng-click="wordmatch($1)">$1</a>

wordmatch()是執行搜索的函數, $1是我要對其執行新搜索的搜索結果中單詞或字符串的值。

我需要將wordmatch($1)的值傳遞給我的搜索或ng-model="search.word"

我假設這是$scope的問題,但是我是Angular的新手,但是我的想法不多了。

DEMO

注意:出於測試目的,我的data.json文件中只有40個左右的單詞,因此並非所有搜索都會產生結果。 淺色或鰻魚都可以。

您將ng-model設置為打開的任何輸入都將自動綁定到! 因此,在您的插件中,每次您輸入輸入內容時search.word都會更新。 所以如果你有

Search: <input type="text" ng-model="search.word" placeholder="Search">
<a href ng-click="wordmatch(search.word)">$1</a>

在您的單詞匹配功能中,它將自動看到$ scope.search.word的值

通過查看演示,您可能想要用更新$scope.search.word值的函數替換wordmatch($1) ,以便更新輸入文本和結果集。

要注意的另一件事是$scope繼承。 我喜歡AngularJS,但是$scope繼承可能會一團糟。 在大多數情況下,我更喜歡使用controller as方法,因此從以下位置獲取數據/方法總是很明顯的:

AngularJS控制器文檔:

下面包括兩種不同的聲明樣式:

  • 一個直接結合的方法和屬性到使用控制器thisng-controller="SettingsController1 as settings"
  • 一個將$scope注入控制器: ng-controller="SettingsController2"

第二個選項在Angular社區中更為常見,通常用於樣板和本指南中。 但是,將屬性直接綁定到控制器並避免使用范圍是有優勢的

  • 當多個控制器應用於一個元素時,使用controller as可以很明顯地在模板中訪問哪個控制器。
  • 如果將控制器編寫為類,則可以從控制器代碼內部更輕松地訪問將出現在作用域中的屬性和方法。
  • 既然總有一個. 在綁定中,您不必擔心原型繼承屏蔽原語。

controller as本文所述,有關controller as更多詳細信息: 探究Angular的“ Controller as”語法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM