FormStamp - AngularJS рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп

AngularJS рдПрдХ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддреА JS рдЪреМрдЦрдЯреЗ рд╣реИ рдЬреЛ рдЬрдЯрд┐рд▓ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реА рдЯреАрдо рдПрдХ рдЬрдЯрд┐рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ AngularJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рдордиреЗ рдПрдХ рдЕрдЪреНрдЫреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдХрдореА рдорд╣рд╕реВрд╕ рдХреА рдЬреЛ рд╕рдорд╛рди рд╡рд┐рдЬреЗрдЯреНрд╕ рдХрд╛ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдбреЗрдЯрд╛рдЗрдо рдкрд┐рдХрд░, рд╕рд┐рд▓реЗрдХреНрдЯ, рдорд▓реНрдЯреАрдкрд▓ рд╕рд┐рд▓реЗрдХреНрдЯ рд╡рдЧреИрд░рд╣ред рдмреЗрд╢рдХ, рд╣рдо Angular UI рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рдереЗ, рд▓реЗрдХрд┐рди AngularUI рдиреЗ рдХреБрдЫ рд╡рд┐рдЧреЗрдЯреНрд╕ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдХрд░рд╛рдП рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рдереАред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд░реЗрд▓ рдлреЙрд░реНрдо рдмрд┐рд▓реНрдбрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рд▓реЗрдХрд┐рди рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдкрд░ред рдлреЙрд░реНрдо рдмрд┐рд▓реНрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдорд╛рд░реНрдХрдЕрдк рдФрд░ рдПрд░рд░ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдкреАрдврд╝реА рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдлреЙрд░реНрдо рдХреЛ рдбрд┐рд╕реНрдХреНрд░рд╛рдЗрдмрд▓реА рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдлреЙрд░реНрдорд╕реНрдЯреИрдореНрдк рдкреБрд╕реНрддрдХрд╛рд▓рдп рдерд╛ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛, рдЬреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рджреНрдзрд╛рдВрдд рд░рдЦреЗ рдЧрдП рдереЗ:


рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢

рдлреЙрд░реНрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдмреЛрд╡рд░ рдкреИрдХреЗрдЬ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
bower install angular-formstamp 

рдлреЙрд░реНрдо рдмрд┐рд▓реНрдбрд░

AngularJS рдХреЗ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдпреВрдЖрдИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рднреА, рдХреНрд╖реЗрддреНрд░ рдХреА рдЬрд╛рдБрдЪ рдкреВрд░реА рдХрд░рдиреЗ рдФрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рдлреЙрд░реНрдо рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╣реЛрдВрдЧреЗ:
рдХреЛрдб
 <form class="form-horizontal" role="form" name="form" ng-app="form-demo"> <div class="form-group" ng-class="{'has-error': form.username.$invalid}"> <label for="username" class="col-sm-2 control-label">Username</label> <div class="col-sm-10"> <input type="text" class="form-control" id="username" placeholder="Username" required="required" ng-pattern="/awesome/" name="username" ng-model="username" /> <p class="alert alert-danger" ng-show='form.username.$error.pattern'> Username should be awesome </p> </div> </div> <div class="form-group" ng-class="{'has-error': form.email.$invalid}"> <label for="email" class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <input type="email" class="form-control" id="email" placeholder="Email" required="required" name="email" ng-model="email" /> <p class="alert alert-danger" ng-show='form.email.$error.email'> Email should be valid </p> </div> </div> <div class="form-group" ng-class="{'has-error': form.password.$invalid}"> <label for="password" class="col-sm-2 control-label">Password</label> <div class="col-sm-10"> <input type="password" class="form-control" id="password" placeholder="Password" required="required" name="password" ng-model="password" ng-minlength='6' /> <p class="alert alert-danger" ng-show='form.password.$error.minlength'> Password should be longer </p> </div> </div> <div class="form-group"> <label for="birthDate" class="col-sm-2 control-label">Birth Date</label> <div class="col-sm-10"> <input type="date" class="form-control" id="birthDate" placeholder="Birth Date" ng-model="birthDate" /> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default">Sign up</button> </div> </div> </form> 

рдкреНрд░рдкрддреНрд░ рдмрд┐рд▓реНрдбрд░ рдШрдЯрдХ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рдлрд╝реЙрд░реНрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

рдкреНрд░рдкрддреНрд░ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рддреНрд░реБрдЯрд┐ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЙрдкрд░реЛрдХреНрдд рдлрд╝реЙрд░реНрдо рдХреЛ рдмрд╣реБрдд рдХрдо рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 <fs-form-for model="samurai"> <fieldset class="form-horizontal"> <fs-input as="text" name="username" required="" label="Name"></fs-input> <fs-input as="email" name="email" required="" label="Email"></fs-input> <fs-input as="password" name="password" required="" label="Email"></fs-input> <fs-input as="fs-date" name="birthdate" required="" label="Date of Birth"></fs-input> </fieldset> </fs-form-for> 

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг:

рдЕрдиреНрдп рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрддреНрд╡ рдХреЗ as рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ as рд╣реИред

рд╡рд┐рдЬреЗрдЯ рд╕реЗрдЯ

рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрдЧрд╛, рдЖрдк рдорд╛рдирдХ рдкреНрд░рдкрддреНрд░ рддрддреНрд╡реЛрдВ рдХреЛ рдЙрддрдирд╛ рд╣реА рдХрдо рдпрд╛рдж рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдлрд┐рд▓рд╣рд╛рд▓, AngularJS рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХрдИ рд╡рд┐рдЬреЗрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЬреЛ рд╣реИрдВ, рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ jQuery рд╡рд┐рдЬреЗрдЯреНрд╕ рдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИред FormStamp рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ AngularJS API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╡рд┐рдЧреЗрдЯреНрд╕ рд╣реИрдВ рдЬреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛:

рдПрдХ рдЪреБрдирд┐рдВрджрд╛ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, fsSelect рд▓рд┐рдП fsSelect рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢ рдЧреБрдг freetext , items , ng-model , ng-required , ng-disabled ред

 freetext 
рд╡рд┐рд╢реЗрд╖рддрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд) рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред freetext=false рд╡рд┐рдЬреЗрдЯ рдЪрдпрди рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдПрдХ рддрддреНрд╡ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред freetext=true рд╡рд┐рдЬреЗрдЯ рдПрдХ рдХреЙрдореНрдмреЛ рдмреЙрдХреНрд╕ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдПрдХ рдореВрд▓реНрдп рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

 items 
рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреА рдХрд┐рд╕ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИред freetext=false рд╡рд┐рдХрд▓реНрдк рдпрд╛ рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред freetext=true рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

 ng-model 
рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдорд╛рдирдХ ngModel рдирд┐рд░реНрджреЗрд╢ рд╣реИред

 ng-disabled 
рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдЧреБрдВрдЬрд╛рдЗрд╢ рд╕рдВрдкрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд┐рдЬреЗрдЯ рдЕрдХреНрд╖рдо / рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред

рдХреЙрдореНрдмреЛ рдмреЙрдХреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╡рд┐рдХрд▓реНрдк $scope.arrayOfOptions рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИрдВред $scope.arrayOfOptions , рдЪрдпрдирд┐рдд рдСрдкреНрд╢рди $scope.selectedOption рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдХреНрд╖рдо / рд╕рдХреНрд╖рдо рд╕реНрдерд┐рддрд┐ $scope.flag рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред $scope.flag , рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд┐рдЦреЗрдВ:
 <div fs-select items=тАЭarrayOfOptionsтАЭ ng-disabled=тАЭflagтАЭ ng-model=тАЭselectedOptionтАЭ freetext=тАЭtrueтАЭ></div> 


рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯреНрд╕ рдФрд░ рдлреЙрд░реНрдо рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреЗрдЬ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рджрд┐рд╢рд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ

рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓реЗрдЦрди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛:

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, fsList рдФрд░ fsInput рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ fsInput ред fsList рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реВрдЪреА рдореЗрдВ fsList listInterface рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд╕рд╛рде $scope рдкрд░ рдмрд╛рддрдЪреАрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИред listInterface рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рд╣реИрдВ:

HTML5 рд╕реЗ audio рдЯреИрдЧ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдПрдБ:
  app.directive("demoAudio", function() { return { restrict: "E", scope: { track: '=' }, template: "<audio controls />", replace: true, link: function($scope, $element, $attrs) { return $scope.$watch('track', function(track) { $element.attr('src', track.stream_url + "?client_id=8399f2e0577e0acb4eee4d65d6c6cce6"); return $element.get(0).play(); }); } }; }); 


рдХрдиреЗрдХреНрдЯ рд╕рд╛рдЙрдВрдбрдХреНрд▓рд╛рдЙрдб рдПрд╕рдбреАрдХреЗ
 <script src="http://connect.soundcloud.com/sdk.js"></script> 

рдЕрдЧрд▓рд╛, рдЗрди рддрддреНрд╡реЛрдВ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдПрдБ:
 function ListDemoCtrl($scope) { //  SoundCloud SDK SC.initialize({ client_id: '8399f2e0577e0acb4eee4d65d6c6cce6' }); //    SoundCloud $scope.$watch('search', function () { SC.get('/tracks', { q: $scope.search, license: 'cc-by-sa' }, function(tracks) { $scope.$apply(function() { $scope.tracks = tracks }) }) }); $scope.search = 'bach'; $scope.tracks = []; //        fsList $scope.move = function (d) { $scope.listInterface.move(d); }; //      fsList $scope.listInterface = { onSelect: function (selectedItem) { $scope.select(selectedItem) } }; $scope.select = function(selectedItem) { $scope.selectedTrack = selectedItem || $scope.listInterface.selectedItem; }; } 


рдФрд░ рдЖрд╡реЗрджрди рд╣реА:
 <div ng-controller="ListDemoCtrl" style="postion: relative;"> <div class="row"> <div class="col-xs-7"> <!--  fsInput     --> <input class="form-control" autofocus="1" fs-input fs-up="move(-1)" fs-down="move(1)" fs-enter="select()" ng-model="search"> <!--  fsList      --> <div fs-list="" items="tracks" class="no-popup"> <!--      --> <img src="{{ item.artwork_url }}" width="30" height="30"> {{item.title}} <small class="text-muted">{{item.genre}}</small> </div> </div> <div class="col-xs-5"> <!--     fsList  - --> <demo-audio track="selectedTrack"></demo-audio> <pre style="margin-top: 20px;">Selected Item: {{ selectedTrack | json }}</pre> </div> </div> </div> 


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдРрд╕рд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рдорд┐рд▓рддрд╛ рд╣реИ:

рдЖрдк рдпрд╣рд╛рдВ рдПрдХ рдЬреАрд╡рдВрдд рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдлреЙрд░реНрдорд╕реНрдЯреИрдореНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлреЙрд░реНрдо рдмрдирд╛рдиреЗ рдкрд░ рдПрдХ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВрдЧреЗред

рдбреЗрдореЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб

Source: https://habr.com/ru/post/In216391/


All Articles