Skip to content

herbertliu/ybind.js

 
 

Repository files navigation

README

A tinny but strong MVVM framework.


###            Author:Lucas-Zeng ###          E-mail:[email protected]

===========================

demo

#####yb-bind

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>YBind example</title>
  <style>
    div span {color: red;}
    .f12 {font-size: 12px;color: #999;}
  </style>
</head>
<body>
  <section>
    <div>Today is day <span yb-bind="dayCtr.day">1</span>.</div>
    <div>I <span yb-bind="dayCtr.isWorkDay">do</span> need to work.</div>
  </section>
  <br>
  <span class="f12">try 'viewController.dayCtr = 2' in console</span>
  <script src="./dist/YBind.min.js"></script>
  <script>
    var viewController = YBind({
      dayCtr: function ( val ) {
        var isWorkDay  = +val <= 5 && +val >= 1, // assume people work form Monday to Friday
          returnArr  = {
            day: val,
            isWorkDay: isWorkDay ? 'do' : 'don\'t',
          }
        return returnArr;
      } 
    });
    //change view
    viewController.dayCtr = 6;
  </script>
</body>
</html>

#####yb-show

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>YBind example</title>
  <style>
    div span {color: red;}
    .f12 {font-size: 12px;color: #999;}
  </style>
</head>
<body>
  <section yb-show="dayCtr.isValidDay">
    <div>Today is day <span yb-bind="dayCtr.day">1</span>.</div>
    <div>I <span yb-bind="dayCtr.isWorkDay">do</span> need to work.</div>
  </section>
  <section yb-show="dayCtr.notValidDay">
    <div>Invalid day</div>
  </section>
  <br>
  <span class="f12">try 'viewController.dayCtr = 2.3' in console</span>
  <script src="./dist/YBind.min.js"></script>
  <script>
    var viewController = YBind({
      dayCtr: function ( val ) {
        var isWorkDay  = +val <= 5 && +val >= 1, // assume people work form Monday to Friday
          isValidDay = +val >= 1 && +val <= 7 && ( val + '' ).indexOf( '.' ) === -1, 
          returnArr  = {
            day: val,
            isWorkDay: isWorkDay ? 'do' : 'don\'t',
            isValidDay: isValidDay,
            notValidDay: !isValidDay
          }
        return returnArr;
      } 
    });
    //change view
    viewController.dayCtr = 6;
  </script>
</body>
</html>

#####yb-class

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>YBind example</title>
  <style>
    div span {color: red;}
    .f12 {font-size: 12px;color: #999;}
    .none {display: none;}
  </style>
</head>
<body>
  <section yb-class="dayCtr.isValidDay">
    <div>Today is day <span yb-bind="dayCtr.day">1</span>.</div>
    <div>I <span yb-bind="dayCtr.isWorkDay">do</span> need to work.</div>
  </section>
  <section yb-class="dayCtr.notValidDay">
    <div>Invalid day</div>
  </section>
  <br>
  <span class="f12">try 'viewController.dayCtr = 2.3' in console</span>
  <script src="./dist/YBind.min.js"></script>
  <script>
    var viewController = YBind({
      dayCtr: function ( val ) {
        var isWorkDay  = +val <= 5 && +val >= 1, // assume people work form Monday to Friday
          isValidDay = +val >= 1 && +val <= 7 && ( val + '' ).indexOf( '.' ) === -1, 
          returnArr  = {
            day: val,
            isWorkDay: isWorkDay ? 'do' : 'don\'t',
            isValidDay: isValidDay ? '' : 'none',
            notValidDay: isValidDay ? 'none' : '',
          }
        return returnArr;
      } 
    });
    //change view
    viewController.dayCtr = 6;
  </script>
</body>
</html>

#####yb-href

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>YBind example</title>
  <style>
    div span {color: red;}
    .f12 {font-size: 12px;color: #999;}
  </style>
</head>
<body>
  <section>
    <a href="javascript:;" yb-href="hrefCtl" yb-bind="hrefCtl"></a>
  </section>
  <br>
  <span class="f12">try 'viewController.hrefCtl = 'https://github.com/Lucas-Zeng/YBind.js';' in console</span>
  <script src="./dist/YBind.min.js"></script>
  <script>
    var viewController = YBind({
      hrefCtl: function ( val ) {
        return val;
      } 
      //hrefCtl: YBind.bind;
      //the above expression also works if hrefCtl return the parameter without futhur logic.
    });
    //change view
    viewController.hrefCtl = 'javascript:;';
  </script>
</body>
</html>

#####yb-class, yb-href, yb-each, yb-click, yb-change, yb-input, yb-blur, yb-focus Please see exapmles.

About

A tiny but strong javascript MVVM framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 52.0%
  • HTML 48.0%