1

尝试使用以下指令在单击时切换按钮文本的值:

   .directive('startstop', function() {
      return {
        restrict: 'E',
        template: '<input value="" class="btn btn-success btn-lg">',
        link: function(scope, elem, attrs) {
          elem.bind("click", function(){
            console.log('startstop clicked', elem)
            if(elem.val() == "start") {
               elem.val("stop");   
            }
            else {
               elem.val("start");
            }
          })
        }
      }
   });

我能够检测到点击事件,当我直接在控制台中查看 elem 时,它的值实际上正在被修改……但我没有看到按钮更新的值。我怎样才能做到这一点?

4

2 回答 2

3

工作示例

你能检查下面的代码:

模板代码:

<startstop></startstop>

指令代码:

directive('startstop', function() {
      return {
        restrict: 'E',
        replace:true,
        template: '<input type="button" value="" class="btn btn-success btn-lg">',
        link: function(scope, elem, attrs) {
          elem.bind("click", function(){
            console.log('startstop clicked', elem)
            if(elem.val() == "start") {
               elem.val("stop");   
            }
            else {
               elem.val("start");
            }

          })
        }
      }
   });
于 2013-09-05T09:17:25.363 回答
1

更改restrict: 'E'restrict: 'A',您的代码效果很好。这是模板

<input type="button" startstop value="button"></input>

Working Demo

于 2013-09-05T04:35:19.347 回答