Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS-指令模板内的增量值_Angularjs_Angularjs Directive - Fatal编程技术网

AngularJS-指令模板内的增量值

AngularJS-指令模板内的增量值,angularjs,angularjs-directive,Angularjs,Angularjs Directive,如标题所示。我想在指令模板中增加值 我试过这个: var ngApp = angular.module("ngApp", []); ngApp.controller("AppCtrl", function(){ var app = this; app.counter = 1; app.foo = function(){ app.counter++; return app.counter; } }); ngApp.directive("box", functio

如标题所示。我想在指令模板中增加值

我试过这个:

var ngApp = angular.module("ngApp", []);

ngApp.controller("AppCtrl", function(){
  var app = this;
  app.counter = 1;
  app.foo = function(){
    app.counter++;
    return app.counter;
  }
});

ngApp.directive("box", function(){
  return {
    restrict: "E",
    template: "<div>BOX - {{app.foo()}}<div>"
  }
});
var ngApp=angular.module(“ngApp”,[]);
ngApp.controller(“AppCtrl”,函数(){
var-app=这个;
app.counter=1;
app.foo=函数(){
app.counter++;
返回app.counter;
}
});
ngApp.指令(“框”,函数(){
返回{
限制:“E”,
模板:“BOX-{{app.foo()}}”
}
});

但它不起作用。有什么想法吗?

像这样试试,你不需要返回任何值,但是你应该调用foo函数,例如在你的代码中需要它的地方单击或调用som

var ngApp = angular.module("ngApp", []);
ngApp.controller("AppCtrl", function(){
  var app = this;
  app.counter = 1;
  app.foo = function(){
    app.counter++;  
  }
});

ngApp.directive("box", function(){
  return {
    restrict: "E",
    template: "<div ng-click='app.foo()'>BOX - {{app.counter}}<div>"
  }
});
var ngApp=angular.module(“ngApp”,[]);
ngApp.controller(“AppCtrl”,函数(){
var-app=这个;
app.counter=1;
app.foo=函数(){
app.counter++;
}
});
ngApp.指令(“框”,函数(){
返回{
限制:“E”,
模板:“框-{app.counter}}”
}
});

您想做什么?第一次编译指令时是否增加值?如果是,则可以执行以下操作:

ngApp.directive("box", function(){
  function ctrl($scope) {
    $scope.counter = $scope.app.foo();
  }
  return {
    restrict: "E",
    scope: true,
    controller: ctrl
    template: "<div>BOX - {{counter}}<div>"
  }
});
ngApp.directive(“box”,function()){
函数ctrl($scope){
$scope.counter=$scope.app.foo();
}
返回{
限制:“E”,
范围:正确,
控制器:ctrl
模板:“框-{{counter}}”
}
});

您可以将控制器放入指令中:

var ngApp = angular.module("ngApp", []);

ngApp.directive("box", function(){
  return {
    restrict: "E",
    controllerAs: 'app',
    controller: function(){
       var app = this;
       app.counter = 1;
       app.foo = function(){
          app.counter++;
       }
    },
    template: "<div>BOX - {{app.foo()}}<div>"
  }
});
var ngApp=angular.module(“ngApp”,[]);
ngApp.指令(“框”,函数(){
返回{
限制:“E”,
controllerAs:“应用程序”,
控制器:函数(){
var-app=这个;
app.counter=1;
app.foo=函数(){
app.counter++;
}
},
模板:“BOX-{{app.foo()}}”
}
});

如果要在重复中使用指令,则可以使用
$index
。我知道,但我需要在指令第一次编译时增加值,正如Wawy所说。然后请解释你需要什么,因为在你的例子中,它只工作一次,而你的计数器是2