0
在我的應用程序中我定義了一個指令,實現了一個簡單的滑塊與下一個/ prev/goto方法。
然後滑塊位於由另一個控制器管理的html snipet內。 問題是,最後一張幻燈片包含一個表單,所以如果提交是好的,我想去下一張幻燈片。角度:從父範圍調用/ triigering指令方法
在舊的javascript中,爲了應用該回調,我會將回調傳遞給submit方法。
我做了同樣的事情。這是最好的/有角度的方式來做到這一點?
使用Javascript(我省略了一些細節):
.directive("sfCarousel", function() {
return {
scope: true,
restrict: 'A',
controller: function($scope) {
var slides = $scope.slides = [];
var currentIndex = $scope.currentIndex = -1;
$scope.next = function() {
//mynextfunction...
}
},
link: function(scope, element, attrs) {
console.log("sf-carousel");
}
}
})
.directive("sfCarouselItem", function() {
return {
scope: true,
require: '^sfCarousel',
link: function(scope, element, attrs, sfCarouselController) {
console.log("sf-carousel-item");
sfCarouselController.addSlide(scope);
}
}
})
.controller("mycontroller", ['$scope', function($scope) {
$scope.submit = function (callback) {
//if submit is ok then
callback.apply(null, []);
}
}])
HTML:
<div sf-carousel >
<div sf-carousel-item ng-class="{'active':active}" >
<div>my first slide</div>
<div sf-label="get-started.submit" ng-click="next()" ></div>
</div>
<div sf-carousel-item ng-class="{'active':active}" >
<form>
<!--here my form-->
<button type="submit" ng-click="submit(next)">submit and go</button>
</form>
</div>
<div sf-carousel-item ng-class="{'active':active}" >
<div>my last slide</div>
<!--other things-->
</div>
</div>
你嘗試類似'submit()?next():null'嗎?如果你可以提供jsfiddle或plunker,那將是非常好的 – Grundy