FormControl or Custom Directive











up vote
1
down vote

favorite












pageRangeValidator(control: FormControl) {
if (control.value === '') {
this.isValidRange = false;
}
if (control.value) {
const selectedRange = control.value;
const range = selectedRange.split('-');
const startingPageIndex = +range[0];
const endingPageIndex = +range[1];
const totalPages = this.totalPages;
if ((startingPageIndex > 0
&& startingPageIndex <= totalPages - 1
&& startingPageIndex < endingPageIndex
&& endingPageIndex > 0
&& endingPageIndex <= totalPages) || (startingPageIndex > 0
&& startingPageIndex <= totalPages
&& startingPageIndex === endingPageIndex
&& endingPageIndex > 0
&& endingPageIndex <= totalPages)) {
this.isValidRange = true;
this.pageRange.emit({
validRange: this.isValidRange,
preview: this.previewDone,
value: control.value
});
return null;
} else {
this.isValidRange = false;
this.pageRange.emit({
validRange: this.isValidRange,
preview: this.previewDone,
value: control.value
});
return false;
}
}
return null;
}


iam creating a form control element which should accept values only between a particular range i used reactiveformsmodule and formcontrol and created it but i want to know wether it is the best way of doing it or use custom directive for this purpose










share|improve this question


























    up vote
    1
    down vote

    favorite












    pageRangeValidator(control: FormControl) {
    if (control.value === '') {
    this.isValidRange = false;
    }
    if (control.value) {
    const selectedRange = control.value;
    const range = selectedRange.split('-');
    const startingPageIndex = +range[0];
    const endingPageIndex = +range[1];
    const totalPages = this.totalPages;
    if ((startingPageIndex > 0
    && startingPageIndex <= totalPages - 1
    && startingPageIndex < endingPageIndex
    && endingPageIndex > 0
    && endingPageIndex <= totalPages) || (startingPageIndex > 0
    && startingPageIndex <= totalPages
    && startingPageIndex === endingPageIndex
    && endingPageIndex > 0
    && endingPageIndex <= totalPages)) {
    this.isValidRange = true;
    this.pageRange.emit({
    validRange: this.isValidRange,
    preview: this.previewDone,
    value: control.value
    });
    return null;
    } else {
    this.isValidRange = false;
    this.pageRange.emit({
    validRange: this.isValidRange,
    preview: this.previewDone,
    value: control.value
    });
    return false;
    }
    }
    return null;
    }


    iam creating a form control element which should accept values only between a particular range i used reactiveformsmodule and formcontrol and created it but i want to know wether it is the best way of doing it or use custom directive for this purpose










    share|improve this question
























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      pageRangeValidator(control: FormControl) {
      if (control.value === '') {
      this.isValidRange = false;
      }
      if (control.value) {
      const selectedRange = control.value;
      const range = selectedRange.split('-');
      const startingPageIndex = +range[0];
      const endingPageIndex = +range[1];
      const totalPages = this.totalPages;
      if ((startingPageIndex > 0
      && startingPageIndex <= totalPages - 1
      && startingPageIndex < endingPageIndex
      && endingPageIndex > 0
      && endingPageIndex <= totalPages) || (startingPageIndex > 0
      && startingPageIndex <= totalPages
      && startingPageIndex === endingPageIndex
      && endingPageIndex > 0
      && endingPageIndex <= totalPages)) {
      this.isValidRange = true;
      this.pageRange.emit({
      validRange: this.isValidRange,
      preview: this.previewDone,
      value: control.value
      });
      return null;
      } else {
      this.isValidRange = false;
      this.pageRange.emit({
      validRange: this.isValidRange,
      preview: this.previewDone,
      value: control.value
      });
      return false;
      }
      }
      return null;
      }


      iam creating a form control element which should accept values only between a particular range i used reactiveformsmodule and formcontrol and created it but i want to know wether it is the best way of doing it or use custom directive for this purpose










      share|improve this question













      pageRangeValidator(control: FormControl) {
      if (control.value === '') {
      this.isValidRange = false;
      }
      if (control.value) {
      const selectedRange = control.value;
      const range = selectedRange.split('-');
      const startingPageIndex = +range[0];
      const endingPageIndex = +range[1];
      const totalPages = this.totalPages;
      if ((startingPageIndex > 0
      && startingPageIndex <= totalPages - 1
      && startingPageIndex < endingPageIndex
      && endingPageIndex > 0
      && endingPageIndex <= totalPages) || (startingPageIndex > 0
      && startingPageIndex <= totalPages
      && startingPageIndex === endingPageIndex
      && endingPageIndex > 0
      && endingPageIndex <= totalPages)) {
      this.isValidRange = true;
      this.pageRange.emit({
      validRange: this.isValidRange,
      preview: this.previewDone,
      value: control.value
      });
      return null;
      } else {
      this.isValidRange = false;
      this.pageRange.emit({
      validRange: this.isValidRange,
      preview: this.previewDone,
      value: control.value
      });
      return false;
      }
      }
      return null;
      }


      iam creating a form control element which should accept values only between a particular range i used reactiveformsmodule and formcontrol and created it but i want to know wether it is the best way of doing it or use custom directive for this purpose







      angular2-forms






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked yesterday









      gurucharan

      163




      163
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          Of course it is more elegant to do it in a custom directive, specially if you are going to use it multiple times or if you want to keep your component small. The directive should recieves the rages and do its evaluation.






          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53183935%2fformcontrol-or-custom-directive%23new-answer', 'question_page');
            }
            );

            Post as a guest
































            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            Of course it is more elegant to do it in a custom directive, specially if you are going to use it multiple times or if you want to keep your component small. The directive should recieves the rages and do its evaluation.






            share|improve this answer

























              up vote
              0
              down vote













              Of course it is more elegant to do it in a custom directive, specially if you are going to use it multiple times or if you want to keep your component small. The directive should recieves the rages and do its evaluation.






              share|improve this answer























                up vote
                0
                down vote










                up vote
                0
                down vote









                Of course it is more elegant to do it in a custom directive, specially if you are going to use it multiple times or if you want to keep your component small. The directive should recieves the rages and do its evaluation.






                share|improve this answer












                Of course it is more elegant to do it in a custom directive, specially if you are going to use it multiple times or if you want to keep your component small. The directive should recieves the rages and do its evaluation.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered yesterday









                Jameel

                31827




                31827






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53183935%2fformcontrol-or-custom-directive%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest




















































































                    Popular posts from this blog

                    横浜市

                    Rostock

                    Europa