এনজি-থ্রি-তে একাধিক মান ঘোষণা করুন


85

সুতরাং আমি ভাবছি যে আমি কীভাবে একটি অদ্ভুত হ্যাশ তৈরি না করেই কোনও একক এনজি-থিমের মধ্যে একাধিক মান ঘোষণা করতে পারি, তারপরে আমাকে সর্বদা বিশেষভাবে অ্যাক্সেস করা দরকার।

তাই মূলত আমি চাই

<div ng-init="a = 1, b = 2">{{a}}</div>

এবং আমি বলছি যে আমি করণীয় এড়াতে চাই

<div ng-init="unecessary_bs = {a: 1, b: 2}">{{unecessary_bs.a}}</div>

তবে যুক্তিসঙ্গত:

<div ng-init="a = 1, b = 2">{{a}}</div>

কাজ মনে হচ্ছে না।

প্রত্যাশিত ধন্যবাদ


"a = 1, b = 2"জাভাস্ক্রিপ্ট যেহেতু যুক্তিসঙ্গত হবে না এবং সেমিকোলনগুলি পৃথক বিবৃতি পৃথক করে, তবে ধারণাটি একই ধারণ করে
বার্নার্ডো ডাল কর্নো

উত্তর:


144

একটি ফাংশন, আরও পাঠযোগ্য উপায়ে ব্যবহার করুন:

ng-init="init()"

এবং:

$scope.init = function() {
    $scope.a = 1;
    $scope.b = 2;
}

বা, যদি আপনার অবশ্যই হয়, একটি আধা-কোলনের সাথে পৃথকভাবে ইনলাইন ভেরিয়েবলগুলি:

ng-init="a = 1; b = 2"

7
এটি এনজি- রিপিটের
টুলকিট

@ টুলকিট কোনও এনজি-রিপিটের বিচ্ছিন্ন সুযোগের বাইরে কোনও ফাংশনকে উল্লেখ করতে ডট নোটেশন (কন্ট্রোলারস সিনট্যাক্স) ব্যবহার করুন। ভিউ থেকে ডাকা একটি ফাংশনে একটি এনজি-রিপিটের পূর্বনির্ধারিত $ সূচক ভেরি পাস করুন pass
ট্রিকপট্টি

কোন দিক থেকে মূল্যায়ন শুরু হয়? উদাহরণস্বরূপ, যদি আমি অন্য বিবৃতিতে একটি ভেরিয়েবল ব্যবহার করতে চাই, তবে আমার বিবৃতিটি কীভাবে লিখব? উদা: এনজি-দির = "এ = 12; বি = 1 + এ" বা আর এন = "বি = 1 + এ; এ = 12;"? এটি জাভাস্ক্রিপ্ট হিসাবে বাম থেকে মূল্যায়ন করে?
পুয়া

@ Пуя - আমি এটি অনুমান করব। আপনি এটি পরীক্ষা করতে পারেন: ng-init="c = a + b; a = 1; b = 2"এবং এর ফলাফল কী তা দেখুন c- সেরা অনুমান, এটি বাম থেকে ডানে চলে গেছে।
tymeJV

39

কখনও কখনও এটি কোনও ফাংশনে ভেরিয়েবলগুলি রাখা আদর্শ নয়। উদাহরণস্বরূপ আপনার ব্যাকএন্ড এক্সপ্রেসে রয়েছে এবং আপনি জড ব্যবহার করে কোনও ফাইল রেন্ডার করছেন।

এক্সপ্রেস.জেএস এর সাহায্যে আপনি এইচটিএমএলে স্থানীয় ভেরিয়েবলগুলি প্রেরণ করতে পারেন। কৌণিক এই পরিবর্তনগুলি এর সাথে গ্রহণ করতে পারে

ng-init=""

ব্যবহার ";" একের একাধিক ভেরিয়েবল থাকতে পারে

উদাহরণ

ng-init=" hello='world'; john='doe' "  


3
 <div ng-app="app">
  <div ng-controller="TodoCtrl">
    <ul>
      <li ng-repeat="todo in todos" ng-init='initTodo = init(todo)'>
        <span class="done-{{todo.done}}">{{todo.text}} |
                               and todo.text via init:{{initTodo}}</span>
      </li>
    </ul>

  </div>

এবং

  var modulse = angular.module("app",[]);

  modulse.controller("TodoCtrl", function ($scope)  {

            $scope.todos = [ {text:'todo1'}, {text:'todo2'}]; 

            $scope.init = function (todo) {  return todo.text; };

  });
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.