我想知道什么时候我必须在输入中使用[[ngModel)],什么时候才可以使用#reference 例如
Traceback (most recent call last):
File "/Users/me/anaconda3/envs/nlp/lib/python3.6/site-packages/nltk/corpus/reader/framenet.py", line 1308, in frame_by_name
elt = XMLCorpusView(locpath, 'frame')[0]
File "/Users/me/anaconda3/envs/nlp/lib/python3.6/site-packages/nltk/corpus/reader/xmldocs.py", line 155, in __init__
encoding = self._detect_encoding(fileid)
File "/Users/me/anaconda3/envs/nlp/lib/python3.6/site-packages/nltk/corpus/reader/xmldocs.py", line 166, in _detect_encoding
with open(fileid, 'rb') as infile:
NotADirectoryError: [Errno 20] Not a directory: '/Users/me/nltk_data/corpora/framenet_v17.zip/framenet_v17/frame/Abandonment.xml'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/me/anaconda3/envs/nlp/lib/python3.6/site-packages/nltk/corpus/reader/framenet.py", line 876, in __repr__
for elt in self:
File "/Users/me/anaconda3/envs/nlp/lib/python3.6/site-packages/nltk/collections.py", line 406, in iterate_from
try: yield self._func(self._lists[0][index])
File "/Users/me/anaconda3/envs/nlp/lib/python3.6/site-packages/nltk/corpus/reader/framenet.py", line 1407, in frame
f = self.frame_by_id(fn_fid_or_fname, ignorekeys)
File "/Users/me/anaconda3/envs/nlp/lib/python3.6/site-packages/nltk/corpus/reader/framenet.py", line 1268, in frame_by_id
return self.frame_by_name(name, ignorekeys, check_cache=False)
File "/Users/me/anaconda3/envs/nlp/lib/python3.6/site-packages/nltk/corpus/reader/framenet.py", line 1310, in frame_by_name
raise FramenetError('Unknown frame: {0}'.format(fn_fname))
nltk.corpus.reader.framenet.FramenetError: Unknown frame: Abandonment
我应该在这里这样做吗,或者我可以改为这样:
<div class="form-group">
<div class="input-group mb-2">
<input type="text" class="form-control" [(ngModel)]="newUser">
<button class="btn btn-outline-success" (click)="onAddUser()">Add user</button>
</div>
</div>
如果有任何答复,我将不胜感激
答案 0 :(得分:0)
这是两个不同的概念:
根据域模型创建一个
FormControl
实例,并将其绑定到 表单控制元素。
(...)通常是对模板中DOM元素的引用。它可以 也是对Angular组件或指令或Web的引用 零件。 (...)
它们的用法完全不同,这取决于您的用例。
例如,如果您想在整个HTML的其余部分中使用var引用某些模型(ngModel
),则可以这样做:
<div class="form-group">
<div class="input-group mb-2">
<input type="text" class="form-control" [(ngModel)]="newUser" #newUser="ngModel">
<button class="btn btn-outline-success" (click)="onAddUser()">Add user</button>
</div>
</div>
现在,您可以在HTML中使用#newUser
进行某种形式的验证,等等。
答案 1 :(得分:0)
add_action( 'template_redirect', 'thankyou_custom_payment_redirect');
function thankyou_custom_payment_redirect(){
if ( is_wc_endpoint_url( 'order-received' ) ) {
global $wp;
// Get the order ID
$order_id = intval( str_replace( 'checkout/order-received/', '', $wp->request ) );
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
// Set HERE your Payment Gateway ID
if( $order->get_payment_method() == 'cheque' ){
// Set HERE your custom URL path
wp_redirect( home_url( '/custom-page/' ) );
exit(); // always exit
}
}
}
允许您将模板元素的值绑定到组件变量。[(ngModel)]
:可以在模板中的任何位置引用总而言之,ngModel引用变量的值,而#引用引用模板对象(HTML元素)。
但是,您仍然可以使用ViewChild访问模板引用变量。
我认为您编写的示例都是正确的。如果我需要在组件中使用该值,则最好使用ngModel;如果在DOM中需要它,则最好使用#。
答案 2 :(得分:0)
您从未没有使用[(ngModel)]
。NgModel
是Angular FormsModule
的一部分。如果导入了FormsModule
,则可以使用ngModel
的附加功能。这样做会创建NgForm
和FormControl
,您可以将其以更复杂的反应形式和动态形式使用,并跟踪字段的状态,例如肮脏,感动。它还将使您能够在字段上放置错误验证器,并公开可观察到的值更改流。
使用模板变量和ViewChild
来捕获输入元素并进行交互,就像使用普通JS一样,也很好,尤其是在用例很简单的情况下。这样,您可以避免在模块中包含FormsModule
。
答案 3 :(得分:0)
对于简单的双向绑定(组件和模板之间)[(ngModel)] 可能更可取,但通过本地引用,我们可以使用 any 任何元素的属性(如果需要),而不仅仅是输入元素的值。