คำถามติดแท็ก angularjs

ใช้สำหรับคำถามเกี่ยวกับ AngularJS (1.x), เฟรมเวิร์ก JavaScript แบบโอเพ่นซอร์ส อย่าใช้แท็กนี้สำหรับ Angular 2 หรือใหม่กว่า; ใช้แท็ก [angular] แทน


2
เราเตอร์ AngularJS ui ส่งผ่านข้อมูลระหว่างรัฐที่ไม่มี URL
ฉันกำลังประสบปัญหานี้ในการส่งผ่านข้อมูลระหว่างสองสถานะโดยไม่เปิดเผยข้อมูลใน URL มันเหมือนว่าผู้ใช้ไม่สามารถลงจอดบนสถานะนี้ ตัวอย่างเช่น. ฉันมีสองสถานะคือ "A" และ "B" ฉันกำลังเรียกเซิร์ฟเวอร์ในสถานะ "A" และผ่านการตอบสนองของการเรียกไปยังสถานะ "B" การตอบสนองของการเรียกเซิร์ฟเวอร์เป็นข้อความสตริงซึ่งค่อนข้างยาวดังนั้นฉันไม่สามารถเปิดเผยสิ่งนั้นใน URL ได้ ดังนั้นมีวิธีใดในเราเตอร์ ui เชิงมุมเพื่อส่งผ่านข้อมูลระหว่างอเมริกาโดยไม่ใช้ url params?

7
ฉันจะเพิ่มฟังก์ชั่นยูทิลิตี้เล็ก ๆ ให้กับแอพพลิเคชั่น AngularJS ได้อย่างไร
ฉันต้องการเพิ่มฟังก์ชั่นยูทิลิตี้บางอย่างให้กับแอพพลิเคชั่น AngularJS ของฉัน ตัวอย่างเช่น: $scope.isNotString = function (str) { return (typeof str !== "string"); } เป็นวิธีที่ดีที่สุดในการทำเช่นนี้เพื่อเพิ่มเป็นบริการหรือไม่ จากสิ่งที่ฉันได้อ่านฉันสามารถทำสิ่งนี้ได้ แต่จากนั้นฉันต้องการใช้สิ่งเหล่านี้ในหน้า HTML ของฉันดังนั้นจึงเป็นไปได้หากพวกเขาอยู่ในบริการ ตัวอย่างเช่นฉันสามารถใช้ต่อไปนี้: <button data-ng-click="doSomething()" data-ng-disabled="isNotString(abc)">Do Something </button> บางคนสามารถยกตัวอย่างให้ฉันเพิ่มได้ไหม ฉันควรสร้างบริการหรือมีวิธีอื่นในการทำเช่นนั้น สำคัญที่สุดฉันต้องการฟังก์ชั่นยูทิลิตี้เหล่านี้ในไฟล์และไม่ได้รวมกับส่วนอื่นของการตั้งค่าหลัก ฉันเข้าใจว่ามีวิธีแก้ปัญหาเล็กน้อย แต่ไม่มีวิธีใดที่ชัดเจน โซลูชันที่ 1 - เสนอโดย Urban $scope.doSomething = ServiceName.functionName; ปัญหานี่คือฉันมี 20 ฟังก์ชั่นและสิบตัวควบคุม ถ้าฉันทำสิ่งนี้มันจะหมายถึงการเพิ่มรหัสจำนวนมากให้กับคอนโทรลเลอร์แต่ละตัว โซลูชันที่ 2 - เสนอโดยฉัน var factory = …
146 angularjs 

12
จะเข้าถึงคุณค่าของสัญญาได้อย่างไร?
ฉันกำลังดูตัวอย่างนี้จากเอกสารของ Angular $qแต่ฉันคิดว่านี่อาจใช้กับสัญญาโดยทั่วไป ตัวอย่างด้านล่างนี้ถูกคัดลอกคำต่อคำจากเอกสารโดยมีความคิดเห็นรวมอยู่ด้วย: promiseB = promiseA.then(function(result) { return result + 1; }); // promiseB will be resolved immediately after promiseA is resolved and its value // will be the result of promiseA incremented by 1 ฉันไม่ชัดเจนว่ามันใช้งานได้อย่างไร ถ้าผมสามารถเรียก.then()ผลการใช้ครั้งแรก.then(), ผูกมัดพวกเขาซึ่งฉันรู้ว่าฉันสามารถแล้วเป็นวัตถุสัญญาประเภทpromiseB มันไม่ได้เป็นObject Numberดังนั้นสิ่งที่พวกเขาหมายถึงโดย "คุณค่าของมันจะเป็นผลมาจากสัญญาเพิ่มขึ้น 1"? ฉันควรจะเข้าถึงสิ่งที่เป็นpromiseB.valueหรืออะไรแบบนั้น? การติดต่อกลับสำเร็จจะส่งคืนสัญญาและส่งคืน "ผลลัพธ์ + 1" ได้อย่างไร ฉันคิดถึงบางอย่าง

3
คำสั่ง AngularJS พร้อมตัวเลือกเริ่มต้น
ฉันเพิ่งเริ่มต้นด้วย angularjs และกำลังทำงานเพื่อแปลงปลั๊กอิน JQuery เก่าสองสามตัวเป็นแนวทางเชิงมุม ฉันต้องการกำหนดชุดตัวเลือกเริ่มต้นสำหรับคำสั่งของฉัน (องค์ประกอบ) ซึ่งสามารถแทนที่ได้โดยการระบุค่าตัวเลือกในแอตทริบิวต์ ฉันได้ดูวิธีที่คนอื่นทำเช่นนี้และในห้องสมุดเชิงมุม uiดูเหมือนว่าui.bootstrap.paginationจะทำสิ่งที่คล้ายกัน ก่อนอื่นตัวเลือกเริ่มต้นทั้งหมดจะถูกกำหนดไว้ในวัตถุคงที่: .constant('paginationConfig', { itemsPerPage: 10, boundaryLinks: false, ... }) จากนั้นgetAttributeValueฟังก์ชั่นยูทิลิตี้จะแนบกับตัวควบคุมคำสั่ง: this.getAttributeValue = function(attribute, defaultValue, interpolate) { return (angular.isDefined(attribute) ? (interpolate ? $interpolate(attribute)($scope.$parent) : $scope.$parent.$eval(attribute)) : defaultValue); }; ในที่สุดนี้จะใช้ในฟังก์ชั่นการเชื่อมโยงเพื่ออ่านในคุณลักษณะเป็น .directive('pagination', ['$parse', 'paginationConfig', function($parse, config) { ... controller: 'PaginationController', link: function(scope, element, …

2
วิธีที่แนะนำในการรับข้อมูลจากเซิร์ฟเวอร์
เป็นวิธีที่แนะนำในการเชื่อมต่อกับแหล่งข้อมูลเซิร์ฟเวอร์ใน AngularJS $resourceโดยไม่ต้องใช้อะไร $resourceมีข้อ จำกัด หลายอย่างเช่น: ไม่ได้ใช้ฟิวเจอร์สที่เหมาะสม ไม่ยืดหยุ่นเพียงพอ
145 angularjs 

2
AngularJS $ RESTful ตัวอย่างทรัพยากร
ฉันต้องการใช้ทรัพยากร $ เพื่อเรียกใช้บริการทางเว็บ RESTful ของฉัน (ซึ่งฉันยังทำงานอยู่) แต่ฉันต้องการทราบว่าฉันได้แก้ไขสคริปต์ AngularJS ของฉันก่อนหรือไม่ สิ่งที่ต้องทำ DTO มี: {id, order, content, done} :cmdคือฉันสามารถโทรapi/1/todo/resetเพื่อล้างตาราง todo ในฐานข้อมูล นี่คือรหัสที่มีความคิดเห็นของความเข้าใจของฉัน: function TodoService($resource) { var src = $resource('api/1/todo/:id:cmd', {id: "@id", cmd: "@cmd"}, //parameters default { ListTodos: { method: "GET", params: {} }, GetTodo: { method: "GET", params: { id: 0 } …

18
ตั้งค่าสไตล์แท็บที่ใช้งานด้วย AngularJS
ฉันมีเส้นทางที่กำหนดไว้ใน AngularJS เช่นนี้: $routeProvider .when('/dashboard', {templateUrl:'partials/dashboard', controller:widgetsController}) .when('/lab', {templateUrl:'partials/lab', controller:widgetsController}) ฉันมีลิงค์บางอันบนแถบด้านบนที่มีสไตล์เป็นแท็บ ฉันจะเพิ่มคลาส 'active' ลงในแท็บโดยขึ้นอยู่กับเทมเพลตหรือ url ปัจจุบันได้อย่างไร

7
AngularJS: จะใช้การอัปโหลดไฟล์อย่างง่ายด้วยฟอร์มหลายส่วนได้อย่างไร?
ฉันต้องการทำโพสต์รูปแบบหลายส่วนอย่างง่ายจาก AngularJS ไปยังเซิร์ฟเวอร์ node.js รูปแบบควรมีวัตถุ JSON ในส่วนหนึ่งและภาพในส่วนอื่น ๆ (ฉันกำลังโพสต์เฉพาะวัตถุ JSON กับ $ ทรัพยากร) ฉันคิดว่าฉันควรเริ่มต้นด้วย input type = "file" แต่ก็พบว่า AngularJS ไม่สามารถผูกกับสิ่งนั้นได้ .. ตัวอย่างทั้งหมดที่ฉันสามารถหาได้สำหรับการรวมปลั๊กอิน jQuery สำหรับการลากและวาง ฉันต้องการอัพโหลดไฟล์เดียวง่ายๆ ฉันใหม่กับ AngularJS และไม่รู้สึกสะดวกสบายเลยกับการเขียนคำสั่งของฉันเอง

12
จะนับจำนวนนาฬิกาทั้งหมดในหน้าได้อย่างไร
JavaScript มีวิธีในการนับจำนวนนาฬิกาเชิงมุมในหน้าทั้งหมดหรือไม่ เราใช้Batarangแต่ไม่เหมาะกับความต้องการของเราเสมอไป แอปพลิเคชันของเรามีขนาดใหญ่และเราสนใจที่จะใช้การทดสอบอัตโนมัติเพื่อตรวจสอบว่าจำนวนนาฬิกาเพิ่มขึ้นมากเกินไปหรือไม่ มันจะมีประโยชน์ในการนับจำนวนนาฬิกาบนพื้นฐานต่อคอนโทรลเลอร์ แก้ไข : นี่คือความพยายามของฉัน มันนับการเฝ้าดูทุกอย่างด้วยขอบเขตคลาส ng (function () { var elts = document.getElementsByClassName('ng-scope'); var watches = []; var visited_ids = {}; for (var i=0; i < elts.length; i++) { var scope = angular.element(elts[i]).scope(); if (scope.$id in visited_ids) continue; visited_ids[scope.$id] = true; watches.push.apply(watches, scope.$$watchers); } return watches.length; …
144 angularjs 

15
วิธีการจัดรูปแบบวันที่ในเชิงมุม
mm/dd/yyyyฉันต้องการที่จะจัดรูปแบบวันที่เป็น ฉันลองสิ่งต่อไปนี้และมันไม่เหมาะกับฉัน มีใครช่วยฉันได้บ้าง การอ้างอิง: ui-date <input ui-date ui-date-format="mm/dd/yyyy" ng-model="valueofdate" /> <input type="date" ng-model="valueofdate" />

8
วิธีการใช้ ng-repeat โดยไม่มีองค์ประกอบ html
ฉันต้องใช้ng-repeat(ใน AngularJS) เพื่อแสดงรายการองค์ประกอบทั้งหมดในอาร์เรย์ ภาวะแทรกซ้อนคือองค์ประกอบของอาร์เรย์จะเปลี่ยนเป็นหนึ่งสองหรือสามแถวของตาราง ฉันไม่สามารถสร้าง html ที่ถูกต้องถ้าng-repeatจะถูกใช้ในองค์ประกอบเช่นชนิดขององค์ประกอบการทำซ้ำไม่ได้รับอนุญาตระหว่างและ<tbody><tr> ตัวอย่างเช่นถ้าฉันใช้ ng-repeat on <span>ฉันจะได้รับ: <table> <tbody> <span> <tr>...</tr> </span> <span> <tr>...</tr> <tr>...</tr> <tr>...</tr> </span> <span> <tr>...</tr> <tr>...</tr> </span> </tbody> </table> อันไหนไม่ถูกต้อง html แต่สิ่งที่ฉันต้องสร้างคือ: <table> <tbody> <tr>...</tr> <tr>...</tr> <tr>...</tr> <tr>...</tr> <tr>...</tr> <tr>...</tr> </tbody> </table> โดยที่แถวแรกถูกสร้างขึ้นโดยองค์ประกอบแถวลำดับที่สามแถวที่สามที่สองและที่ห้าและที่หกจากองค์ประกอบอาร์เรย์สุดท้าย ฉันจะใช้ ng-repeat ในลักษณะที่องค์ประกอบ html ที่ถูกผูกไว้ 'หายไป' ในระหว่างการเรนเดอร์ได้อย่างไร? หรือมีวิธีแก้ไขปัญหานี้อีกหรือไม่ การชี้แจง: …
142 angularjs 

3
“ สิ่งต่าง ๆ ” ใดบ้างที่สามารถแทรกเข้าไปในสิ่งอื่นใน Angular.js
ฉันมีเวลาค่อนข้างยากที่จะเข้าใจการพึ่งพาการฉีดในเชิงมุม ดังนั้นคำถามของฉันคือทุกคนสามารถอธิบายว่า "ชนิด" ชนิดใดบ้างเช่นตัวควบคุมโรงงานผู้ให้บริการและอื่น ๆ ที่เราสามารถแทรกเข้าไปในผู้อื่นรวมถึงอินสแตนซ์อื่นของ "ชนิด" เดียวกัน สิ่งที่ฉันกำลังมองหาคือตารางนี้เต็มไปด้วย y / n สำหรับเซลล์ที่มีแถว / คอลัมน์เดียวกันนั่นหมายถึงการฉีดค่า "ชนิด" หนึ่งลงในอีกเซลล์หนึ่งที่มี "ประเภท" เดียวกัน +----------------+----------+------------+-----------+---------+--------+----------+---------+-------+ | Can we inject? | Constant | Controller | Directive | Factory | Filter | Provider | Service | Value | +----------------+----------+------------+-----------+---------+--------+----------+---------+-------+ | Constant | | | | | | …

4
AngularJS: จะใช้สัญญาได้ที่ไหน
ฉันเห็นตัวอย่างของบริการเข้าสู่ระบบ Facebook ที่ใช้สัญญาเพื่อเข้าถึง FB Graph API ตัวอย่าง # 1 : this.api = function(item) { var deferred = $q.defer(); if (item) { facebook.FB.api('/' + item, function (result) { $rootScope.$apply(function () { if (angular.isUndefined(result.error)) { deferred.resolve(result); } else { deferred.reject(result.error); } }); }); } return deferred.promise; } และบริการที่ใช้"$scope.$digest() // Manual scope evaluation"เมื่อได้รับการตอบสนอง …

17
jasmine: Async callback ไม่ได้ถูกเรียกใช้ภายในระยะเวลาที่กำหนดโดย jasmine.DEFAULT_TIMEOUT_INTERVAL
ฉันมีบริการเชิงมุมที่เรียกว่าrequestNotificationChannel: app.factory("requestNotificationChannel", function($rootScope) { var _DELETE_MESSAGE_ = "_DELETE_MESSAGE_"; function deleteMessage(id, index) { $rootScope.$broadcast(_DELETE_MESSAGE_, { id: id, index: index }); }; return { deleteMessage: deleteMessage }; }); ฉันพยายามทดสอบบริการโดยใช้ดอกมะลิ: "use strict"; describe("Request Notification Channel", function() { var requestNotificationChannel, rootScope, scope; beforeEach(function(_requestNotificationChannel_) { module("messageAppModule"); inject(function($injector, _requestNotificationChannel_) { rootScope = $injector.get("$rootScope"); scope = rootScope.$new(); …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.