<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ## 可見性 本節中我們認識到了模塊的一個新特性:可見性。 模擬中的組件、指令以及管道默認是私有的,其對模塊內部可見,模塊內的組件可以隨意調用本模塊中存在的組件、指令以及管道;當模塊A被其它模塊B imports使用時,則僅能夠使用A模塊使用`exports`聲明的組件、指令或是管道,所以我們稱使用`exports`聲明的組件、指令或是管道為公有的。 ## 驗證器 我們還學習了兩種驗證器:同步驗證器與異步驗證器。一般而言,同步驗證器又被簡稱為驗證器。 同步驗證器作用到某個`FormControl`上,每當`FormControl`的值變化一次,該驗證器便會執行一次。驗證器的本質是一個**方法**,所以在設置時才有這樣的語法:`Validaters.required`或`YzValidators.phone`。該方法在驗證通過時返回`null`,在驗證未通過時返回自定義信息。 如果你查閱了官方文檔,還會發現可以為一個`FormControl`設置多個驗證器,比如:`new FormControl('', [驗證器1,驗證器2]);`,或者在初始化`FormControl`后追加驗證器:`formControl.setValidators(Validators.required);` 異步驗證器依賴于后臺請求,所以在異步驗證中的方法沒有辦法聲明為靜態的。這時候則需要在相關的方法中返回一個驗證器規定好格式的**方法**。Angular考慮到了異步驗證器調用后臺的情況,所以僅在同步驗證器全部驗證通過后才會調用異步驗證器。另外由于向后臺發起的請求順序與響應順序并不見得是一致的,異步驗證器連續發起后臺請求時,將只接收最后一次請求對應的響應。與同步驗證器一樣,異步驗證器驗證通過時返回`null`,未通過時返回自定義信息。同時,在異步驗證器發起后臺請求但卻尚未得到響應前,將對應的`FormControl`與`FormGroup`的`pending`屬性設置為`true` ,表示數據正在請求中。特別需要注意的是當`pending` 值為`true`時,`FromGroup`的`invalid`屬性會臨時被設置為`false`。 ## 驗證器中的依賴注入 我們學習了兩種實例化依賴于`HttpClient`的異步驗證器的方法。第一種方法簡單、粗暴,當前在前期也有效,但不夠模塊化,不夠高內聚低耦合;第二種方法借助了Angular的依賴注入特性,簡單但不粗暴,應用了模塊化的思想,高內聚低耦合。 我們還以loading功能為例,完成了一個具有載入中圖標以及設置按鈕disabled屬性的指令。在指令的編寫過程中,對DOM的應用有了些初步的認識。如果你有過DOM應用的經驗,相信你還可以通過指令輕松的完成更多的功能。指令與組件的地位是相同的,用法也是相通通的,所以在指令中,除可注入宿主的引用外,還可以注入Angular提供的任意服務,比如`HttpClient`。 最后我們完成了添加功能,在完成過程中使用了前面學習的服務、實體類,同時還使用單元測試來輔助我們完成了提交功能的開發。在單元測試的幫助下,開發的效率更高,代碼也更健壯了。 <hr> 積跬步,至千里;積小流,成江海 ---- 偉大的荀子
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看