Coder Social home page Coder Social logo

angular-keep-values's Introduction

angular-keep-values Bower version Build Status

Use the value attribute in your inputs to set the value of your ngModel.

angular-keep-values is no longer maintained.

  • We will leave the Issues open as a discussion forum only.
  • We do not guarantee a response from us in the Issues.
  • We are no longer accepting pull requests.

Installation

Just use Bower.

bower install angular-keep-values --save

Then, inject it into your application:

angular.module('MyApp', ['platanus.keepValues']);

Usage

Add the keep-current-value directive to any input, select or textarea element to automatically set its value as the value of its associated ngModel, without the need for ngInit.

Example

<input type="text" ng-model="data.name" value="René Morales" keep-current-value>

<select ng-model="data.city" keep-current-value>
  <option value="1">Santiago</option>
  <option value="2" selected>Concepción</option>
</select>

<input type="radio" ng-model="data.payment" value="Master Card" keep-current-value checked>
<input type="radio" ng-model="data.payment" value="Visa" keep-current-value>
<input type="radio" ng-model="data.payment" value="None" keep-current-value>

<textarea ng-model="data.text" keep-current-value>Lorem ipsum</textarea>

<input type="checkbox" ng-model="data.remember" keep-current-value checked />

Will result in:

$scope.data = {
  name: 'René Morales',
  city: '2',
  payment: 'Master Card',
  text: 'Lorem ipsum',
  remember: true
}

You can also use the keep-input-values directive in any container element to automatically apply keep-current-value to any child input, select or textarea tags with that have an associated ngModel, like so:

<div keep-input-values>
  <input type="text" ng-model="data.name" value="René Morales">
</div>

Results in $scope.data.name == 'René Morales'.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Credits

Thank you contributors!

Platanus

angular-keep-values is maintained by platanus.

License

Guides is © 2014 platanus, spa. It is free software and may be redistributed under the terms specified in the LICENSE file.

angular-keep-values's People

Contributors

amosrivera avatar antidiestro avatar blackjid avatar bunzli avatar gmq avatar jimx6 avatar ldlsegovia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

angular-keep-values's Issues

The element value is not displayed using angular-keep-values

Apparently the keep-current-value directive is added dynamically but the element is not compiled afterwards.

See the case example.

  function link(scope, element, attrs) {
    SUPPORTED_ELEMENTS.forEach(function(tagName){
      var checkElements = element.find(tagName);
      angular.forEach(checkElements, function(checkElement) {
        var checkElement = angular.element(checkElement);
        if ( angular.isDefined(checkElement.attr('ng-model')) ) checkElement.attr('keep-current-value', '');
      })
    });
  }

It can be fixed adding this line:

checkElement.replaceWith($compile(checkElement)(scope));

PR: #4

keep-input-values executes other directives twice

The use of $compile inside keep-input-values makes angular execute other directives twice.

.replaceWith($compile(checkElement)(scope));

Example case: http://jsfiddle.net/g69bx9ao/5/

We can use the preCompile state to add attributes before angular has compiled the form elements.

var directive = {
  compile: compile,
  restrict: 'A'
};

function compile(){
 // add attributes to elements here

  return {
    pre: preCompile
  };
}

PR: #13

Add support to multiple checkbox

When html looks like this

<input type="checkbox" name="roles[]" value="admin" />
<input type="checkbox" name="roles[]" value="guess" />
<input type="checkbox" name="roles[]" value="user" />

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.