本文整理汇总了TypeScript中angular.isFunction函数的典型用法代码示例。如果您正苦于以下问题:TypeScript isFunction函数的具体用法?TypeScript isFunction怎么用?TypeScript isFunction使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了isFunction函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: watchProps
/**
*
* @param watchDepth (value of HTML watch-depth attribute)
* @param scope (angular scope)
*
* Uses the watchDepth attribute to determine how to watch props on scope.
* If watchDepth attribute is NOT reference or collection, watchDepth defaults to deep watching by value
*/
function watchProps(watchDepth, scope, watchExpressions, listener) {
const supportsWatchCollection = angular.isFunction(scope.$watchCollection);
const supportsWatchGroup = angular.isFunction(scope.$watchGroup);
const watchGroupExpressions = [];
for (const expr of watchExpressions) {
const actualExpr = getPropExpression(expr);
const exprWatchDepth = getPropWatchDepth(watchDepth, expr);
// ignore empty expressions & expressions with functions
if (!actualExpr || actualExpr.match(/\(.*\)/) || exprWatchDepth === 'one-time') {
continue;
}
if (exprWatchDepth === 'collection' && supportsWatchCollection) {
scope.$watchCollection(actualExpr, listener);
} else if (exprWatchDepth === 'reference' && supportsWatchGroup) {
watchGroupExpressions.push(actualExpr);
} else {
scope.$watch(actualExpr, listener, exprWatchDepth !== 'reference');
}
}
if (watchDepth === 'one-time') {
listener();
}
if (watchGroupExpressions.length) {
scope.$watchGroup(watchGroupExpressions, listener);
}
}
示例2: watchProps
/**
*
* @param watchDepth (value of HTML watch-depth attribute)
* @param scope (angular scope)
*
* Uses the watchDepth attribute to determine how to watch props on scope.
* If watchDepth attribute is NOT reference or collection, watchDepth defaults to deep watching by value
*/
function watchProps(watchDepth, scope, watchExpressions, listener) {
const supportsWatchCollection = angular.isFunction(scope.$watchCollection);
const supportsWatchGroup = angular.isFunction(scope.$watchGroup);
const watchGroupExpressions = [];
watchExpressions.forEach(expr => {
const actualExpr = getPropExpression(expr);
const exprWatchDepth = getPropWatchDepth(watchDepth, expr);
if (exprWatchDepth === 'collection' && supportsWatchCollection) {
scope.$watchCollection(actualExpr, listener);
} else if (exprWatchDepth === 'reference' && supportsWatchGroup) {
watchGroupExpressions.push(actualExpr);
} else if (exprWatchDepth === 'one-time') {
//do nothing because we handle our one time bindings after this
} else {
scope.$watch(actualExpr, listener, exprWatchDepth !== 'reference');
}
});
if (watchDepth === 'one-time') {
listener();
}
if (watchGroupExpressions.length) {
scope.$watchGroup(watchGroupExpressions, listener);
}
}
示例3: reject
(data) => {
if (!data) {
reject(`Failed to load dashboard categories. Result: ${data}`);
return;
}
let idCounter = 0;
const newCategories: any = [];
for (let category in data) {
if (data.hasOwnProperty(category)) {
let dashboards = data[category];
if (dashboards.length > 0) {
dashboards = dashboards.filter(dash => dash && dash !== '');
const item = {
id: idCounter++,
name: category,
dashboards: dashboards
};
// sort
if (angular.isFunction(this.$izendaDashboardConfig.dashboardToolBarItemsSort))
item.dashboards.sort((item1, item2) => this.$izendaDashboardConfig.dashboardToolBarItemsSort(item1, item2));
newCategories.push(item);
}
}
}
this.categories.onNext(newCategories, this);
resolve(this.categories);
},
示例4: onButtonClick
/**
* Handle button click.
*/
onButtonClick(button) {
if (!button) return;
if (angular.isFunction(button.callback)) {
button.callback(this.$izendaUtilUiService.dialogBox.checkboxes);
}
this.closeModal();
}
示例5: getReactComponent
// get a react component from name (components can be an angular injectable e.g. value, factory or
// available on window
function getReactComponent(name, $injector) {
// if name is a function assume it is component and return it
if (angular.isFunction(name)) {
return name;
}
// a React component name must be specified
if (!name) {
throw new Error('ReactComponent name attribute must be specified');
}
// ensure the specified React component is accessible, and fail fast if it's not
let reactComponent;
try {
reactComponent = $injector.get(name);
} catch (e) {}
if (!reactComponent) {
try {
reactComponent = name.split('.').reduce((current, namePart) => {
return current[namePart];
}, window);
} catch (e) {}
}
if (!reactComponent) {
throw Error('Cannot find react component ' + name);
}
return reactComponent;
}
示例6: function
drop: function (event, ui) {
if (angular.isFunction(scope.onDrop)) {
scope.onDrop({
arg0: angular.element(ui.helper).attr('draggable-data-id')
});
}
}
示例7: RecursiveDirectiveHelperCompile
compile: function RecursiveDirectiveHelperCompile(element, link) {
// Normalize the link parameter
if (angular.isFunction(link)) {
link = {
post: link
};
}
// Break the recursion loop by removing the contents
var contents = element.contents().remove();
var compiledContents;
return {
pre: (link && link.pre) ? link.pre : null,
/**
* Compiles and re-adds the contents
*/
post: function RecursiveDirectiveHelperCompilePost(scope, element) {
// Compile the contents
if (!compiledContents) {
compiledContents = $compile(contents);
}
// Re-add the compiled contents to the element
compiledContents(scope, function (clone) {
element.append(clone);
});
// Call the post-linking function, if any
if (link && link.post) {
link.post.apply(null, arguments);
}
}
};
}
示例8:
function getModuleId<T>(value: T): T | string {
if (ng.isFunction(value) && Reflect.get(value, ID_SYMBOL)) {
return Reflect.get(value, ID_SYMBOL) as string;
}
return value;
}
示例9: function
onOpen: function ($event) {
if (scope.config.disabled) {
$event.prevent();
return;
}
if (hasBeenOpened === false) {
hasBeenOpened = true;
}
filterOptions();
$document.on('keyup', onEscPressed);
domDropDownMenu.style.visibility = 'hidden';
$timeout(function () {
adjustHeight();
domDropDownMenu.style.visibility = 'visible';
if (scope.config.filter.active) {
// use timeout to open dropdown first and then set the focus,
// otherwise focus won't be set because iElement is not visible
$timeout(function () {
iElement[0].querySelector('.dropdown-menu input').focus();
});
}
});
jqWindow.on('resize', adjustHeight);
if (angular.isFunction(scope.config.dropdown.onOpen)) {
(scope.config.dropdown.onOpen as any)();
}
},
示例10: UtilService
export function UtilService($window) {
'ngInject';
var Util = {
/**
* Return a callback or noop function
*
* @param {Function|*} cb - a 'potential' function
* @return {Function}
*/
safeCb(cb) {
return (angular.isFunction(cb)) ? cb : angular.noop;
},
/**
* Parse a given url with the use of an anchor element
*
* @param {String} url - the url to parse
* @return {Object} - the parsed url, anchor element
*/
urlParse(url) {
var a = document.createElement('a');
a.href = url;
// Special treatment for IE, see http://stackoverflow.com/a/13405933 for details
if (a.host === '') {
a.href = a.href;
}
return a;
},
/**
* Test whether or not a given url is same origin
*
* @param {String} url - url to test
* @param {String|String[]} [origins] - additional origins to test against
* @return {Boolean} - true if url is same origin
*/
isSameOrigin(url, origins) {
url = Util.urlParse(url);
origins = (origins && [].concat(origins)) || [];
origins = origins.map(Util.urlParse);
origins.push($window.location);
origins = origins.filter(function(o) {
let hostnameCheck = url.hostname === o.hostname;
let protocolCheck = url.protocol === o.protocol;
// 2nd part of the special treatment for IE fix (see above):
// This part is when using well-known ports 80 or 443 with IE,
// when $window.location.port==='' instead of the real port number.
// Probably the same cause as this IE bug: https://goo.gl/J9hRta
let portCheck = url.port === o.port || (o.port === '' && (url.port === '80' || url.port === '443'));
return hostnameCheck && protocolCheck && portCheck;
});
return origins.length >= 1;
}
};
return Util;
}