এনজি-অন্তর্ভুক্তের সঠিক বাক্য গঠন কী?


398

আমি একটির ভিতরে এইচটিএমএল স্নিপেট অন্তর্ভুক্ত করার চেষ্টা করছি ng-repeat, তবে আমি কাজটি অন্তর্ভুক্ত করতে পারি না। এটির বর্তমান সিনট্যাক্সটি ng-includeআগের তুলনায় আলাদা: আমি অনেকগুলি উদাহরণ ব্যবহার করে দেখছি

<div ng-include src="path/file.html"></div>

তবে সরকারী দস্তাবেজে এটি ব্যবহার করতে বলে

<div ng-include="path/file.html"></div>

তবে পৃষ্ঠার নিচে এটি প্রদর্শিত হবে

<div ng-include src="path/file.html"></div>

নির্বিশেষে, আমি চেষ্টা করেছি

<div ng-include="views/sidepanel.html"></div>
<div ng-include src="views/sidepanel.html"></div>
<ng-include src="views/sidepanel.html"></ng-include>
<ng-include="views/sidepanel.html"></ng-include>
<ng:include src="views/sidepanel.html"></ng:include>

আমার স্নিপেট খুব বেশি কোড নয়, তবে এটি অনেকটা চলছে; আমি ডায়নামিকালি ভিতরে টেমপ্লেটটিতেng-repeat পড়েছিলাম যা কোনও সমস্যার কারণ হতে পারে, তাই আমি sidepanel.htmlকেবল শব্দটির সামগ্রীটি fooএবং এখনও কিছুই দিয়ে প্রতিস্থাপন করেছি ।

আমি এই পৃষ্ঠায় সরাসরি টেমপ্লেটটি ঘোষণার চেষ্টা করেছি:

<script type="text/ng-template" id="tmpl">
    foo
</script>

এবং ng-includeস্ক্রিপ্টের রেফারেন্সের সমস্ত পরিবর্তনের মধ্য দিয়ে চলছে idএবং এখনও কিছুই নেই।

আমার পৃষ্ঠায় এতে আরও অনেক কিছু ছিল তবে এখন আমি এটিকে একে একে সরিয়ে রেখেছি:

<!-- index.html -->
<html>
<head>
<!-- angular includes -->
</head>
<body ng-view="views/main.html"> <!-- view is actually set in the router -->
    <!-- views/main.html -->
    <header>
        <h2>Blah</h2>
    </header>
    <article id="sidepanel">
        <section class="panel"> <!-- will have ng-repeat="panel in panels" -->
            <div ng-include src="views/sidepanel.html"></div>
        </section>
    </article>
<!-- index.html -->
</body>
</html>

শিরোনামটি রেন্ডার করে তবে আমার টেমপ্লেটটি তা দেয় না। আমি কনসোলে বা নোড থেকে কোনও ত্রুটি পাই না এবং আমি যদি ডিভাইসগুলিতে লিঙ্কটি ক্লিক করি তবে src="views/sidepanel.html"এটি আমাকে আমার টেমপ্লেটে নিয়ে যায় (এবং প্রদর্শনগুলি foo)।

উত্তর:


775

আপনার srcডাবল উদ্ধৃতিতে আপনার স্ট্রিংয়ের একক উদ্ধৃতি দিতে হবে :

<div ng-include src="'views/sidepanel.html'"></div>

সূত্র


4
হ্যাঁ, আমাকে এই দিনটি বিট করুন। কিছুটা সম্পর্কিত উত্তর স্ট্যাকওভারফ্লো.com
জাইমে

60
এর কারণ হ'ল এনজি ট্যাগগুলিতে যে কোনও স্ট্রিং আসলে কৌণিক অভিব্যক্তি হিসাবে মূল্যায়ন করা হয়। '' এটি বলছে যে এটি একটি স্ট্রিং এক্সপ্রেশন।
জিপেন্সেন্স

37
@ জিপেন্সেন্স: একবার জানার পরে তা বোধগম্য হয়। ডকুমেন্টেশন যদিও এটির স্পষ্টতা উল্লেখ করেছে এটি দুর্দান্ত হবে।
জ্যাকব

1
হ্যাঁ এখন আমি জানি তারা "স্ট্রিং" কেন বলে ... ধন্যবাদ + জ্যাকব
সন্ধানের

7
আমি সম্মত, আমাদের অবশ্যই কৌণিক সংক্রান্ত একটি ডকুমেন্টেশন প্রচেষ্টা এবং একটি বিন্যাস সিস্টেমের দরকার।
জিপেন্সেন্স

134
    <ng-include src="'views/sidepanel.html'"></ng-include>

অথবা

    <div ng-include="'views/sidepanel.html'"></div>

অথবা

    <div ng-include src="'views/sidepanel.html'"></div>

মনে রাখার বিষয়গুলি:

-> এসসিআর তে কোনও স্থান নেই

-> এসআরসি-র জন্য ডাবল উদ্ধৃতিতে একক উদ্ধৃতি ব্যবহার করতে ভুলবেন না


8
ng-include="'...'"সিনট্যাক্স স্পষ্টভাবে ভাল দেখায়।
পিয়র-লুক জেন্ডারও

সুতরাং আমি এনজি-অন্তর্ভুক্ত করছি মন্তব্য বিন্যাসে বিদ্যমান নেই?
ওজজি দ্য জায়ান্ট

50

এই সমস্যাগুলির শ্যুটিংয়ের জন্য, এটি জেনে রাখা গুরুত্বপূর্ণ যে এনজি-অন্তর্ভুক্ত করার জন্য ইউআরএল পাথটি অ্যাপ্লিকেশন রুট ডিরেক্টরি থেকে হওয়া এবং একই ডিরেক্টরি থেকে নয় যেখানে আংশিক এইচটিএমএল থাকে lives (যদিও আংশিক এইচটিএমএল হ'ল এমন ফাইল যা ইনলাইন এনজি-অন্তর্ভুক্ত মার্কআপ ট্যাগটি খুঁজে পেতে পারে)।

উদাহরণ স্বরূপ:

সঠিক: ডিভ এনজি-অন্তর্ভুক্ত src = "'/ পর্যালোচনাগুলি / পার্টিয়ালস / ট্যাবস্লাইডস / অ্যাড- মোর এইচটিএমএল'">>

ভুল: ডিভ এনজি-অন্তর্ভুক্ত src = "'অ্যাড-মোর html'">


6
আসলে, এটি ঠিক সঠিক নয়: পথটি আপেক্ষিক হতে পারে তবে এটি এইচটিএমএল ফাইলের সাথে সম্পর্কিত যা থেকে অ্যাপটি ইনস্ট্যান্ট করা হয়েছিল। আপনার "ভুল" উদাহরণে, add-more.htmlএকই ডিরেক্টরিতে থাকলে এটি কাজ করবে app.html। আমার উত্তর, views/হিসাবে একই ডিরেক্টরিতে হয় app.html
জ্যাকব

লারাভেলের ক্ষেত্রে এবং পাবলিক ফোল্ডারে কাঠামো স্থাপনের ক্ষেত্রে (পাবলিক / অ্যাপ / টেম্পলেট / অন্তর্ভুক্ত) এবং কলিং ফাইলটি (পাবলিক / অ্যাপ / টেম্পলেট / সূচক। পিএফপি) অন্তর্ভুক্ত হওয়া পথ (অ্যাপ / টেম্পলেট / অন্তর্ভুক্ত) অন্তর্ভুক্ত রয়েছে /filetoinclude.php)। কাজের তুলনায় আমি পাইনি।
জেসন স্পিক

10

যারা আংশিক থেকে সংক্ষিপ্ততম "আইটেম রেন্ডার" সমাধান সন্ধান করছেন তাদের জন্য এনজি-রিপিট এবং এনজি-অন্তর্ভুক্তের একটি কম্বো :

<div ng-repeat="item in items" ng-include src="'views/partials/item.html'" />

প্রকৃতপক্ষে, আপনি যদি এটির পুনরায় কারকের জন্য এটি ব্যবহার করেন তবে এটি কার্যকর হবে, তবে তাদের 2 টির জন্য হবে না! কৌণিক (v1.2.16) একের পর এক আপনার যদি এই 2 টি থাকে তবে কোনও কারণে ফ্রিক আউট হবে, সুতরাং ডিভিটি প্রাক-এক্সএইচটিএমএল উপায়টি বন্ধ করা নিরাপদ:

<div ng-repeat="item in items" ng-include src="'views/partials/item.html'"></div>


এটি বছর পরে, তবে এটি একটিতে কাজ করার জন্য আমার যা প্রয়োজন তা অবিকল ছিল <tbody ng-repeat="item in vm.items" ng-include="vm.searchTemplateBodyUrl" ng-cloak>। ধন্যবাদ!
এরিক ডি জনসন

9

হতে পারে এটি নতুনদের জন্য সহায়তা করবে

<!doctype html>
<html lang="en" ng-app>
  <head>
    <meta charset="utf-8">
    <title></title>
    <link rel="icon" href="favicon.ico">
    <link rel="stylesheet" href="custom.css">
  </head>
  <body>
    <div ng-include src="'view/01.html'"></div>
    <div ng-include src="'view/02.html'"></div>
    <script src="angular.min.js"></script>
  </body>
</html>

7

এটি আমার পক্ষে কাজ করেছে:

ng-include src="'views/templates/drivingskills.html'"

সম্পূর্ণ বিভাগ:

<div id="drivivgskills" ng-controller="DrivingSkillsCtrl" ng-view ng-include src="'views/templates/drivingskills.html'" ></div>

2
আপনার একত্রিত করা উচিত নয় ng-viewএবং ng-inclueএকই উপাদানটিতে; আপনার রাউটারে src ( টেম্পলেটআরএল দেখুন ) কনফিগার করা উচিত।
জ্যাকব

@ জ্যাকব তাই আপনি কীভাবে এটি একটি রুট হিসাবে লোড করবেন ?? কারণ আমি আমার দৃষ্টিভঙ্গি লোড করতে পারি এবং আমি আমার নিয়ামককে ট্রিগার করতে পারি, তবে তারা সংযুক্ত নয়, লোডগুলি খালি দেখুন
সোনিক সোল

@ সোনিকসোল এনজিআরটার ব্যবহার করুন এবং এটি টেমপ্লেট হিসাবে সেট করুন। বা যদি আপনি এই পথটিতে রুট প্যারামগুলি ব্যবহার করতে চান তবে এটি কেবল জাভাস্ক্রিপ্টের মত প্রকাশের মতো ব্যবহার করুন:someVar + 'some string'
জ্যাকব

@ জ্যাকোব আমি ইতিমধ্যে এনজিআউটার ব্যবহার করেছি তবে কীভাবে এনজি-অন্তর্ভুক্ত করে সেই রুটটি লোড করতে হয় তা আমি জানি না .. যদি আমি এসআরসি-তে কোনও রুট ব্যবহার করি তবে এটি কেবল দৃশ্যটি নয় পুরো সাইটটি লোড করে :( আমি যদি আপেক্ষিক পথে এটি লোড করি তবে এইচটিএমএল, এটি দৃশ্যের সাথে নিয়ামকটি লোড করে না
সোনিক সোল

@ সোনিকসোল আপনি এনজিআরটারের মাধ্যমে লোড হচ্ছে এমন দৃশ্যে নেস্টেড কোনও টেম্পলেট লোড করার চেষ্টা করছেন? যদি তা হয়, তবে আমি মনে করি যে এসআরসি-র কাছে আপনি যে মান সরবরাহ করেন তা হ'ল আপনার প্রকল্পের ডিরেক্টরি কাঠামোর (কোনও অ্যাপ রুট নয়) একটি পরম পথ হওয়া উচিত। আপনি যদি এনজিইনক্লুড ব্যবহার করে রুট টেম্পলেটটি সেট করার চেষ্টা করছেন তবে এটি ভুল। এর বাইরে, এটি 6 বছর আগে ছিল এবং আমি সম্ভবত 3+ বছরে অ্যাঙ্গুলারজেএস ব্যবহার করি নি।
জ্যাকব

0

এটা চেষ্টা কর

<div ng-app="myApp" ng-controller="customersCtrl"> 
  <div ng-include="'myTable.htm'"></div>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
    $http.get("customers.php").then(function (response) {
        $scope.names = response.data.records;
    });
});
</script>

-1

এনজি-বিল্ডে, ফাইল খুঁজে পাওয়া যায় নি (404) ত্রুটি ঘটে। সুতরাং আমরা নীচের কোড ব্যবহার করতে পারেন

<ng-include src="'views/transaction/test.html'"></ng-include>

পরিবর্তে,

<div ng-include="'views/transaction/test.html'"></div>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.