我尝试使用指令加载脚本但是它不起作用,我有一个应用程序,它应该在局部显示图表(guage meter),试图将脚本粘贴到局部视图但没有用,甚至指令没有不行。 但是如果页面正常加载它的工作,当它用作部分它不显示任何图表(脚本相关的东西)
在angularjs的部分视图中加载脚本的任何简单示例?
的index.html
<!DOCTYPE html>
<html>
<head>
<!-- CSS (load bootstrap) -->
<link rel="stylesheet" href="bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<!-- JS (load angular, ui-router, and our custom js file) -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.min.js"></script>
<script src="angular-ui-router.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="routerApp">
<!-- NAVIGATION -->
<nav class="navbar navbar-inverse" role="navigation">
<ul class="nav navbar-nav">
<li><a ui-sref="home">Customer Details</a></li>
<li><a ui-sref="about">Job Details</a></li>
</ul>
</nav>
<!-- MAIN CONTENT -->
<div class="container">
<div ui-view></div>
</div>
</body>
</html>
app.js
var routerApp = angular.module('routerApp', ['ui.router']);
routerApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
$stateProvider
// HOME STATES AND NESTED VIEWS
.state('home', {
url: '/home',
templateUrl: 'partial-home.html'
})
.state('home.list', {
url: '/list',
templateUrl: 'partial-home-list.html',
controller: function($scope) {
$scope.dogs = ['Bernese', 'Husky', 'Goldendoodle'];
}
})
//JOB Section Navigations
.state('job', {
url: '/jobdetails',
templateUrl: 'jobdetails.html'
})
// ABOUT PAGE AND MULTIPLE NAMED VIEWS
.state('about', {
url: '/about',
views: {
'': { templateUrl: 'partial-about.html' },
'columnOne@about': { template: 'Look I am a column!' },
'columnTwo@about': {
templateUrl: 'table-data.html',
controller: 'scotchController'
}
}
});
});
routerApp.controller('scotchController', function($scope) {
$scope.message = 'test';
$scope.scotches = [
{
name: 'Macallan 12',
price: 50
},
{
name: 'Chivas Regal Royal Salute',
price: 10000
},
{
name: 'Glenfiddich 1937',
price: 20000
}
];
});
routerApp.directive('jsSidebar' , function() {
return {
link: function(scope, element, attrs) {
alert('testing');
}
}
});
局部home.html的
<div > Home partial page </div>
<a ui-sref="job"> Click to Display Chart </a>
<div ui-view></div>
jobdetails.html
<script >
//Chart library is mentioned which is over 2000lines
</script>
<!-- here chart supposed to be rendered-->
<div id="id_of_chart"></div>
<div jsSidebar >Testing purpose</div>
答案 0 :(得分:2)
ng-view不会在模板中加载脚本。
请查看此.. https://stackoverflow.com/a/18220411/4578788了解详情。
答案 1 :(得分:0)
Angular使用jquery(jQLite)的精简版本,它有一些DOM限制,阻止它在局部视图中执行脚本文件。
<强>解决方案强>
在引用index.html中的主要AngularJS脚本之前引用jQuery脚本。这将使角度使用jQuery而不是jQlite。