0
私はインターネットで見つかったSelectクラスを使用していますが、問題は選択したオプションを選択する際に、angluar ng-repeatを使用してクリック可能ではありませんが、手動で作成した場合は動的値も使用してクリックできます。Ng-IncludeコードでNg-Repeatが正常に動作しない
これはコードです:
MainFile:
...
<div id="SiteList" ng-controller="SiteController as siteCtrl" ng-if="masterCtrl.isUserLogged()" ng-include="'Select2/index.html'" ng-init="siteCtrl.getSites()" >
...
これは、Selectセレクト/ index.htmlを ...
<body>
<div class="drop">
<div class="option active placeholder" data-value="placeholder">
Seleziona un sito
</div>
<div class="option" ng-repeat="sito in siteCtrl.siti" data-value="{{sito.name}}">{{sito.name}}</div>
</div>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src="Select2/js/index.js"></script>
</body>
です...
次にSelectセレクト/js/index.js
$(document).ready(function() {
$(".drop .option").click(function() {
var val = $(this).attr("data-value"),
$drop = $(".drop"),
prevActive = $(".drop .option.active").attr("data-value"),
options = $(".drop .option").length;
$drop.find(".option.active").addClass("mini-hack");
$drop.toggleClass("visible");
$drop.removeClass("withBG");
$(this).css("top");
$drop.toggleClass("opacity");
$(".mini-hack").removeClass("mini-hack");
if ($drop.hasClass("visible")) {
setTimeout(function() {
$drop.addClass("withBG");
}, 400 + options*100);
}
triggerAnimation();
if (val !== "placeholder" || prevActive === "placeholder") {
$(".drop .option").removeClass("active");
$(this).addClass("active");
};
});
function triggerAnimation() {
var finalWidth = $(".drop").hasClass("visible") ? 22 : 20;
$(".drop").css("width", "24em");
setTimeout(function() {
$(".drop").css("width", finalWidth + "em");
}, 400);
}
});
誰でもこの問題を解決する方法はありますか?
をスクリプトがロードされ、body要素がトップレベルからの1とredonantありませんが、IFRAMEではありません。 jQuery/Vanilla /その他から再利用可能なコンポーネントを作成する場合は、angularJSの 'directives'ドキュメントを確認してください。 – Walfrat