我一直在努力设置我的ng-include如下:
<!DOCTYPE html>
<html ng-app>
<head>
<title>Demo</title>
<script type="text/javascript" src="js/lib/angular.min.js"></script>
<script type="text/javascript" src="js/lib/angular-resource.min.js"></script>
<script type="text/javascript" src="js/controllers/app.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
</head>
<body>
<h1>Airports</h1>
<div ng-controller="AppCtrl">
<div>
<div>
<ul>
<li ng-repeat="airport in airports">
<a href="" ng-click="setAirport(airport.code)">
{{airport.code}} - {{airport.name}}
</a> -
<a href="" ng-click="editAirport(airport.code)">
Editar
</a>
</li>
</ul>
<p ng-show="currentAirport">Current airpot: {{currentAirport.name}}</p>
</div>
<!--el ng include le indica que puede incluir un scope (.html)-->
<div ng-include src="formURL"></div>
</div>
</div>
</body>
</html>
我的JS脚本(app.js):
function AppCtrl ($scope){
$scope.airports={
"STL":{
"code":"STL",
"name":"Lambert-St Airport",
"city":"san louis",
"destinations": [
"LAX",
"MKE"
]
}
};
$scope.formURL= 'partials/form.html';
$scope.currentAirport = null;
$scope.setAirport = function (code) {
$scope.currentAirport = $scope.airports[code];
};
$scope.editAirport = function (code) {
$scope.editing = $scope.airports[code];
};
}
最后是form.html
<div ng-show="editing">
<h3>Edit Airport</h3>
<input ng-model="editing.name" value="" class="input-xlarge"/>
</div>
我试图显示表单,更改网址,编写完整的网址,但似乎无法正常工作。虽然当我点击机场时,页面显示正确。
如果有人能指出我正确的方向,那将是伟大的。对于这篇巨大的帖子感到抱歉,它需要一些解释才能使它变得连贯。希望这是有道理的。感谢。
My directory:
exampleAngular
|_css
|_img
|_js
|_controllers
|_app.js
|_lib
|_angular.min.js
|_angular-resource.min.js
|_partials
|_form.html
|_airport.html
|_index.html
答案 0 :(得分:2)
Andyrooger提供的弹药在没有修改的情况下工作正常,但是你应该改变一些东西。
1)当使用指令作为属性时,使用ng-include
时没有src
,因此它应该是ng-include="formUrl"
2)使用对象属性而不是ng-show
将HTML更改为,
<div ng-show="editing.airport">
<h3>Edit Airport</h3>
<input ng-model="editing.name" value="" class="input-xlarge"/>
</div>
还要注意范围继承,更改Controller
$scope.editing = {};
// Inside function
$scope.editing.airport = $scope.airports[code]
答案 1 :(得分:1)
根据您的评论,您的formURL
似乎不正确......
你在这一行设置
$scope.formURL= 'partials/form.html';
但是您说 form.html 与 index.html 位于同一目录中。 formURL
是相对于 index.html 所在目录的路径。所以
将 form.html 放入 partials 目录( angularexample / partials / form.html )
或
将formURL
设为
$scope.formURL= 'form.html';