AngularJS Includes
ЁЯУМ AngularJS ng-include
рдХреНрдпрд╛ рд╣реИ?
AngularJS рдореЗрдВ ng-include
directive рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣рдо рдХрд┐рд╕реА external HTML file рдХреЛ рдЕрдкрдиреЗ page рдореЗрдВ include рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред
рдЖрд╕рд╛рди рднрд╛рд╖рд╛ рдореЗрдВ: рдЖрдк рдЕрдкрдиреЗ рдкреЗрдЬ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ (header, footer, sidebar) рдХреЛ рдЕрд▓рдЧ HTML рдлрд╛рдЗрд▓ рдореЗрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ main рдкреЗрдЬ рдореЗрдВ рд▓рд╛рдХрд░ reuse рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ тАФ рдЬреИрд╕реЗ PHP рдХреА
include
.
тЬЕ Syntax:
<div ng-include="'filename.html'"></div>
рдзреНрдпрд╛рди рджреЗрдВ: File name quotes рдореЗрдВ рджреЗрдирд╛ рдЬрд░реВрд░реА рд╣реИ (
' '
рдпрд╛" "
)
ЁЯФД рдХрдм рдФрд░ рдХреНрдпреЛрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ?
Situation | Benefit |
---|---|
Header, Footer рдмрд╛рд░-рдмрд╛рд░ рдЪрд╛рд╣рд┐рдП | рдПрдХ рдмрд╛рд░ рдмрдирд╛рдХрд░ рд╣рд░ рдкреЗрдЬ рдореЗрдВ include рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ |
Code Reusability | Same HTML рдмрд╛рд░-рдмрд╛рд░ copy рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ |
Modular Design | рдмрдбрд╝реЗ projects рдореЗрдВ рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдмрд╛рдБрдЯрдирд╛ рдЖрд╕рд╛рди |
Maintainability | рдмрджрд▓рд╛рд╡ рд╕рд┐рд░реНрдл рдПрдХ file рдореЗрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ |
тЬЕ Example 1: Static Include
ЁЯСЙ header.html
<div class="w3-blue w3-padding">
<h2>Welcome to AngularJS Site</h2>
</div>
ЁЯСЙ main page:
<div ng-app="">
<div ng-include="'header.html'"></div>
<p>This is the main content area.</p>
</div>
Output: Header top рдкрд░ include рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
тЬЕ Example 2: Dynamic Include (Variable рд╕реЗ)
<div ng-app="myApp" ng-controller="mainCtrl">
<select ng-model="template">
<option value="'home.html'">Home</option>
<option value="'about.html'">About</option>
</select>
<div ng-include="template"></div>
</div>
<script>
var app = angular.module("myApp", []);
app.controller("mainCtrl", function($scope) {
$scope.template = "'home.html'";
});
</script>
рдЕрдм dropdown рд╕реЗ template рдмрджрд▓рдиреЗ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ content рджрд┐рдЦреЗрдЧрд╛ред
тЪая╕П Important Notes:
- Include рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓ рдореЗрдВ рд╕рд┐рд░реНрдл HTML рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (script, style рдХреЛ avoid рдХрд░реЗрдВ)
- Path рд╕рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (relative рдпрд╛ absolute)
- CORS рдпрд╛ security error рди рдЖрдП рдЗрд╕рд▓рд┐рдП file рдЕрдкрдиреЗ рд╣реА server рд╕реЗ serve рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
тЬЕ Practical Use Cases:
Use Case | File |
---|---|
Header | header.html |
Footer | footer.html |
Sidebar | sidebar.html |
User Profile | profile.html |
Tabs / Pages | about.html , contact.html , etc. |
ЁЯза рдЕрднреНрдпрд╛рд╕ рдкреНрд░рд╢реНрди (Exercise)
ng-include
рдХрд╛ рдХрд╛рдо рдХреНрдпрд╛ рд╣реИ AngularJS рдореЗрдВ?- рдХреНрдпрд╛ рд╣рдо dynamic file рднреА include рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХреИрд╕реЗ?
- рдиреАрдЪреЗ рджрд┐рдП рдЧрдП code рдХрд╛ output рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
<div ng-include="'footer.html'"></div>
тЬЕ рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╕реАрдЦрд╛?
- AngularJS рдореЗрдВ external HTML file рдХреИрд╕реЗ include рдХрд░рддреЗ рд╣реИрдВ
ng-include
static рдФрд░ dynamic рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ- Code reuse, modularity рдФрд░ maintainability рдХрд╛ рдлрд╛рдпрджрд╛
- Practical examples: header, footer, tabs рдЖрджрд┐
ЁЯОп рдЕрдм рдЖрдк AngularJS рдореЗрдВ рдЕрдкрдирд╛ HTML code smart рддрд░реАрдХрд╝реЗ рд╕реЗ manage рдФрд░ reuse рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ тАФ рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХрд╛ app рдмрди рдЬрд╛рдПрдЧрд╛ professional рдФрд░ maintainable!