问题
I have a view being loaded with an embedded text/ng-template
which is not being found by a ng-include
later in the file. The script block sits at the very top of the view file:
<script type="text/ng-template" id="stringCondition">
<!-- template guts -->
</script>
Which I am loading later in the file with:
<ng-include src="'stringCondition'"></ng-include>
But is producing a 404 error in the console:
GET http://localhost/~me/stringCondition 404 (Not Found)
I've tried several variants on naming (like having .html on the end) and using ng-include
as an attribute instead of the high level element. All with no luck.
What could be causing an embedded ng-template
to not be registering with an ng-include
in the same view file?
UPDATE:
As comments and answers have pointed out, the basic design of my code is correct. But something is causing ng-template
to (apparently) fail to make the template available to the system.
I updated my code to pull from a HTML file (instead of an imbedded template) and it works fine.
Is there a common situation that I could be running into that breaks ng-template
?
回答1:
<div ng-app>
<script type="text/ng-template" id="stringCondition">
Yes, yes it did.
</script>
Did it work? <ng-include src="'stringCondition'"></ng-include>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
I had the same problem and came upon this post. I can now see what is causing this issue so hopefully this is helps anyone else with this issue.
The reason rgthree's code works is that the script tag for text/ng-template has to live within the scope of ng-app. So it is fine to have the template in a seperate .js file but just make sure when it is rendered on the HTML page it is within ng-app, otherwise angular won't be aware of it and will attempt to load it from the server.
回答2:
Seems to work fine for me. Perhaps you have something else going on outside of your example code.
<div ng-app>
<script type="text/ng-template" id="stringCondition">
Yes, yes it did.
</script>
Did it work? <ng-include src="'stringCondition'"></ng-include>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
来源:https://stackoverflow.com/questions/29172780/inline-ng-template-not-found-by-ng-include