Я только что сгенерировал угловое приложение, используя инструмент генератора проекта Yeoman. Сгенерированный проект имеет каталог «node_modules». Внутри этого модуля есть много, возможно, «предопределенных функций» для массива-diff и т. Д., И я хочу использовать эти функции внутри моего приложения angularJS (контроллеры, директивы), только если это возможно.Использование node_modules внутри приложения AngularJS
I'v пытался использовать эти узловые_модули с помощью RequireJS и Node-Browserfy unfortonatelly без каких-либо успехов каждый раз, когда я получал некоторую ошибку. Пример «Фильтр не определяет и т. Д.». Есть ли пошаговое руководство для интеграции этого модуля в приложение AngularJS?
Это мой bundle.js генерируется узлом-browswerfy
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var myFilter =require('../../node_modules/array-filter/index.js');
},{"../../node_modules/array-filter/index.js":2}],2:[function(require,module,exports){
/**
* Array#filter.
*
* @param {Array} arr
* @param {Function} fn
* @return {Array}
*/
module.exports = function (arr, fn) {
if (arr.filter) return arr.filter(fn);
var ret = [];
for (var i = 0; i < arr.length; i++) {
if (!hasOwn.call(arr, i)) continue;
if (fn(arr[i], i, arr)) ret.push(arr[i]);
}
return ret;
};
var hasOwn = Object.prototype.hasOwnProperty;
},{}]},{},[1]);
Это мой контроллер
'use strict';
/**
* @ngdoc function
* @name alam2App.controller:MainCtrl
* @description
* # MainCtrl
* Controller of the alam2App
*/
angular.module('alam2App')
.controller('MainCtrl', function ($scope) {
var array = [1, 2, 3];
console.log(myFilter (array, function (el, i, arr) {
return false; // I throw it on the ground!
}));
$scope.awesomeThings = [
'HTML5 Boilerplate',
'AngularJS',
'Karma'
];
});
Сообщение об ошибке я получил на консоли
ReferenceError: myFilter is not defined
Как вы пробовали? Прикрепите код вашей попытки. – marekful
Вы не должны использовать node_modules, потому что папка node_modules не будет развернута на сервере. Для функций утилиты массива используйте lodash или UnderscoreJS. –
@Mahesh Sapkal Это неверно. Нулевые мудулы должны существовать в развернутой среде. _Использование существующих модулей в вашем коде просто в порядке. – marekful