
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
ng-backbone
Advanced tools
A small extension of Backbone.js that unlocks Angular-like programming experience
ngBackbone is a small extension of Backbone.js that unlocks Angular-like programming experience
Well, I love old good Backbone for its simplicity and flexibility. However after working with such frameworks as Angular and React, I see that Backbone app requires much more code. Yet I don't want to ditch Backbone and deal with some 20K LOC framework codebase. I just want a minimal modular extension that will improve my programming experience and maintainability of my code.
And that is how I came up with ngBackbone
ngBackbone extends the base with:
Ng.Backbone does not depend on jQuery or Underscore, meaning you can use on an optimized build of Backbone. For example,
my preferred build consists of Exoskeleton (Backbone decoupled from Underscore), Backbone.NativeView (Backbone View decoupled from jQuery) and
Backbone.Fetch (Backbone.sync leveraging Feth API instead of XHR)
Though Ng.Backbone works fine with canonical Backbone bundle (Backbone + jQuery + Underscore)
import { Component, FormView } from "backbone-ng";
import { HeroPowers } from "./Collection/HeroPowers";
@Component({
el: "ng-hero",
events: {
"submit form": "onSubmitForm"
},
collections: {
powers: new HeroPowers()
},
template: `
<form data-ng-group="hero">
<div class="form-group">
<label for="name">Name</label>
<input id="name" name="name" type="text" class="form-control" required >
<div class="alert alert-danger" data-ng-if="hero.name.valueMissing">
Name is required
</div>
</div>
<div class="form-group">
<label for="power">Hero Power</label>
<select id="power" name="power" class="form-control">
<option data-ng-for="let aPower of powers" data-ng-text="aPower.name" >Nothing here</option>
</select>
<div class="alert alert-danger" data-ng-if="hero.power.dirty && !hero.power.valid">
Power is required
</div>
</div>
<button type="submit" class="btn btn-default" data-ng-prop="'disabled', !hero.group.valid">Submit</button>
</form>
`
})
export class HeroView extends FormView {
initialize() {
this.collections.get( "powers" ).fetch();
}
onSubmitForm( e:Event ){
e.preventDefault();
alert( "Form submitted" )
}
}
ngBackbone welcomes maintainers. There is plenty of work to do. No big commitment required,
if all you do is review a single Pull Request, you are a maintainer.
npm install
npm run test
FAQs
A small extension of Backbone.js that unlocks Angular-like programming experience
We found that ng-backbone demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.