2015-04-07 5 views
6

परिभाषित किया गया है, मैं अभी भी कोणीय में सरल चीजों से लड़ रहा हूं। मेरे पास jQuery और बैकबोनज पृष्ठभूमि है, इसलिए कृपया मुझ पर चिल्लाना न करें।कोणीय | तत्व से एक विशेषता मान कैसे प्राप्त करें जिसमें नियंत्रक को

<div data-ng-controller="ProjectCtrl as ctrl" data-project-id="1" id="project_configuration"> 

वहाँ इस विशेषता तक पहुँच प्राप्त करने के लिए कोई मौका है: मैं मतभेद

मैं HTML है जिसमें रेल से डेटा-परियोजना-आईडी के रूप में इस परियोजना की आईडी दिया जाता है समझना कठिन कोशिश? मुझे इसे अपने एपीआई कॉल की ज़रूरत है ...

+0

आप angularjs द्वारा प्रदान की गई jqlite का उपयोग कर सकते हैं जो jQuery के लिए एक विकल्प है कोणीय दायरे में, हालांकि आप एचटीएमएल से डेटा पढ़ने के किसी अन्य तरीके से ऐसा करना चाह सकते हैं, जब आप निर्देशों से निपट रहे हों तो मॉडल को ऐसा करने के लिए कोणीय तरीका नहीं है। –

उत्तर

15

एक तत्व एक नियंत्रक से जिम्मेदार बताते पहुंचने के लिए, अपने नियंत्रक समारोह में $attrs इंजेक्षन में सक्षम हैं है:

एचटीएमएल

<div test="hello world" ng-controller="ctrl"> 
</div> 

स्क्रिप्ट

app.controller('ctrl', function($attrs) { 
    alert($attrs.test); // alerts 'hello world' 
}); 

अपने उदाहरण में, आप डेटा-परियोजना-आईडी प्राप्त करना चाहते हैं:

$attrs.projectId 

या आप प्राप्त करना चाहते हैं, तो आईडी:

$attrs.id 

डेमो:

var app = angular.module('app',[]); 
 
app.controller('ctrl', function($attrs) { 
 
    alert($attrs.test); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl" test="hello world"> 
 
    
 
</div>

+0

$ attrs अपरिभाषित हैं, क्या आपके पास दिखाने के लिए कोई काम करने वाला पहेली है? – Kania

+0

आप मानते हैं कि वे एक कस्टम निर्देश के साथ काम कर रहे हैं। शायद यही कारण है कि $ attrs अनिर्धारित है। चूंकि वे निर्देशक के नियंत्रक के बजाय दृश्य के नियंत्रक में हो सकते हैं। –

+0

क्षमा करें, मुझे नहीं पता कि आपका क्या मतलब है ... – pixelbits

0

कोणीय दुनिया में आपको डीओएम तत्वों के साथ छेड़छाड़ करने के निर्देशों का उपयोग करना चाहिए। यहां एक अच्छा स्पष्टीकरण कस्टम निर्देश (How to get evaluated attributes inside a custom directive) से विशेषता मान कैसे प्राप्त करें।

लेकिन आप अभी भी प्राप्त करना चाहते हैं अगर यह नियंत्रक से मूल्य आप jQuery का उपयोग करने के रूप में अच्छी तरह $('#project_configuration').data('project-id')

+3

अपने नियंत्रक के अंदर से jquery का उपयोग करना एक अच्छा अभ्यास नहीं है। Jquery का उपयोग करने के लिए निर्देश सबसे अच्छी जगह है। मेरे लिए – ATHER

संबंधित मुद्दे