私はSparklineを作成するAngularJSディレクティブを持っています。アプリはFirefox(51 ..)では正常に動作しますが、Google Chromeブラウザ(56 ..)で表示すると、アプリは目的のグラフィックを配信できません。コンポーネント内のネストされたディレクティブのChromeでOdd AngularJS 1.5の動作
私は実際のアプリケーションをサーバーからテストしましたが、これはCross origin requestsの問題ではありません。さらに、検査時にコンソールにエラーが報告されません。どのような援助のため、事前にhttps://plnkr.co/edit/K9wO5Ibx1Uk8ygkOUGU6?p=preview
ありがとう:
このplunkerは私の元の問題を再現します。 index.htmlを
<html>
<head>
<link rel="stylesheet" href="style.css" />
<script src="jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="jquery.sparkline.js"></script>
<script src="app.module.js"></script>
<script src="ab-help.module.js"></script>
<script src="ab-help.component.js"></script>
<script src="ab-spkline.directive.js"></script>
</head>
<body ng-app="abMyapp">
<h2>Testing sparkline directive via component in angular </h2>
<p>This is outside the ab-help tags</p>
<spk-line data="30, 1, 14, 10, 8, 15, 6, 13, 2"></spk-line>
<ab-help></ab-help>
</body>
</html>
部品は以下に圧縮されている様々なの.js
:
// Define the 'app' module
angular.module('abMyapp', ['abHelp']); //note in my original app more modules are injected here, example on plunker only shows one!
// Define the `abHelp` module
angular.module('abHelp', []);
// Register `abHelp` component, along with its associated controller and template
angular.
module('abHelp').
component('abHelp', {
templateUrl: 'ab-help.template.html',
controller: function(){
this.myData = "1, 1, 4, 14, 4, 15, 6, 23, 4";
}
});
//template
<p>This is from inside component</p>
<spk-line data="3, 1, 4, 10, 8, 5, 6, 3, 4"></spk-line> <br>
<spk-line data="{{ $ctrl.myData }}"></spk-line>
http://jsfiddle.net/NAA5G/のため、そしてもちろんhttp://omnipotent.net/jquery.sparkline/#s-aboutのおかげですべての重要なスパークラインディレクティブ、& JQuery、Angular!
angular.module('abMyapp').directive("spkLine", function() {
return {
restrict: "E",
scope: {
data: "@"
},
compile: function(tElement, tAttrs, transclude) {
tElement.replaceWith("<span>" + tAttrs.data + "</span>");
return function(scope, element, attrs) {
attrs.$observe("data", function(newValue) {
element.html(newValue);
element.sparkline('html', {
type: 'line'
});
});
};
}
};
});